JavaScript: наследование - PullRequest
       10

JavaScript: наследование

1 голос
/ 26 января 2012

Я пытался сделать наследование, но я не ожидал, что this.array будет действовать как статический член.Как я могу сделать его «защищенным / публичным»:

function A() {
    this.array = [];
}

function B() {
    this.array.push(1);
}
B.prototype.constructor=B;
B.prototype = new A();

Firebug:

>>> b = new B();
A { array=[1]}
>>> b = new B();
A { array=[2]}
>>> b = new B()
A { array=[3]}

1 Ответ

3 голосов
/ 26 января 2012

Не "private / protected", но это создаст новый массив для каждого B.

function A() {
    this.array = [];
}

function B() {
    A.apply(this); // apply the A constructor to the new object
    this.array.push(1);
}
// B.prototype.constructor=B; // pointless
B.prototype = new A();
...