gpt4 book ai didi

javascript - 为什么 JS 中的一些函数有 prototype.constructor prop 而另一些没有?这些功能有什么区别?

转载 作者:行者123 更新时间:2023-11-29 15:45:14 26 4
gpt4 key购买 nike

JS 中的每个函数构造函数都有一个 prototype.constructor 属性。它存储函数的定义:

function Rabbit(value) {
this.jumps: value;
}
alert(Rabbit.prototype.constructor); // alerts exactly the definition of the Rabbit function

现在我检查一个简单的函数,而不是函数构造函数,它的主体中没有任何 this:

function bar(val) {
alert(val);
}
alert(bar.prototype.constructor); // behavior is absolutely the same: it alerts the definition of bar

现在我检查内置的 Array() 函数:

alert(Array.prototype.constructor);  // in Chrome it alerts "function Array() { [native code] }"

现在我想检查一个内置对象的一些内置函数:

// The error is thrown in console: TypeError: Cannot read property 'constructor' of undefined 

alert(Array.prototype.sort.prototype.constructor);

sort 没有prototype。它在哪里?它的构造函数在哪里?

最佳答案

如果您自己添加该方法,它会返回您期望的结果:

    Array.prototype.remove= function(){
var what, a= arguments, L= a.length, ax;
while(L && this.length){
what= a[--L];
while((ax= this.indexOf(what))!= -1) this.splice(ax, 1);
}
return this;
}


alert(Array.prototype.remove.prototype.constructor);

不可枚举的方法不公开它们的代码

关于javascript - 为什么 JS 中的一些函数有 prototype.constructor prop 而另一些没有?这些功能有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12497859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com