я заметил, что замораживание прототипа функции конструктора было побочный эффект, который в основном сломал конструктор цепочку: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/
есть хорошая причина, почему Ьх не определен в конце?
Если это не ошибка, то как же x2 равен 1 в скрипке?
Хотя ваш вопрос не имеет точно такого же кода, [этот вопрос] (http://stackoverflow.com/questions/19698533/creating-new-objects-from-frozen-parent-objects/19698581#19698581) объясняет, почему это так. –