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
。它在哪里?它的构造函数在哪里?