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