【发布时间】:2017-11-10 04:17:22
【问题描述】:
例如:
function F() {};
F.prototype = {
test: function() { console.log('test'); }
};
console.log(F.prototype.constructor); // [Function: Object]
F.prototype = 'string';
var o = new F();
console.log(F.prototype.constructor); // [Function: String]
console.log(F.prototype); // string
console.log(o.constructor); // [Function: Object]
o.test(); // Can't work
在上面的代码中,初始构造函数是F(),即F.prototype.constructor。但后来我将F.prototype 重置为'string'。还有我的问题:
- 将
F.prototype重置为'string'后,为什么F.prototype.constructor变成[Function: String]。换句话说,它决定了F.prototype.constructor? - 我知道新对象会继承
prototype对象的属性,constructor属性也是如此。但是为什么对象p的构造函数是原来的构造函数[Function: Object],而不是[Function: String]呢?
提前致谢。
【问题讨论】:
-
好的,@Liam。感谢您的建议。
标签: javascript oop constructor prototype