(我是 JavaScript 新手)。以下代码:
function A() {
console.log('Constructing A');
this.a = new Array();
}
function B(x) {
console.log('Constructing B');
this.a.push(x);
this.b = x;
}
B.prototype = new A();
b1 = new B(10);
b2 = new B(11);
console.log('b1', b1);
console.log('b2', b2);
结果 b1 和 b2 共享单个 this
.a 数组(但不同 this.b
)。这就像一个浅拷贝。
我不太明白创建单独 this.a
数组的正确方法是什么。我希望它们继承,因为这是代码的逻辑,此外我不想在每个子对象中创建它们(在我的情况下有很多子对象)。