【发布时间】:2011-05-13 11:16:29
【问题描述】:
我正在尝试掌握 javascript 构造函数以及它们是否真的是只读的。这是一个简单的测试场景:
var A = function(){}
console.log( A.prototype.constructor == A ); //true
所以此时,每个新函数都会收到一个原型对象,其中包含构造函数作为引用。这都很好。现在考虑一下:
var B = function() {
this.id = 0;
}
A.prototype.constructor = B; // what does this do with A?
所以现在,A 的每个实例都应该将 B 作为构造函数:
var C = new A();
console.log(C.constructor == B) // true
最后,这对每个实例都有实际影响吗?好像不是这样的:
console.log(C.id); // what will this yield?
我的问题是:公开构造函数引用的目的是什么?显然您可以设置/覆盖它,但它除了更改引用之外什么都不做。还是我错过了什么?
【问题讨论】:
标签: javascript oop constructor