7
我注意到,冻结构造函数的原型有一个副作用,基本上打破了构造函数链:的JavaScript - 冻结构造函数原型的副作用
function A(x) {
this.x=x;
}
function B(x, y) {
A.call(this, x);
this.y=y;
}
B.prototype = new A();
Object.freeze(B.prototype);
b=new B(1,2)
// I expected b.x to be 1 here but it's undefined
这里是展示问题的一个小提琴:
http://jsfiddle.net/jhpxv20b/2/
为什么bx在末尾没有定义是否有充分的理由?
如果这不是一个错误,那么x2是如何在小提琴中1?
虽然你的问题没有完全一样的代码,但是这个问题没有完全相同的代码,[this question](http://stackoverflow.com/questions/19698533/creating-new-objects-from-frozen-parent-objects/19698581#19698581)解释了为什么是这种情况。 – 2014-10-04 02:39:07