Сообщение от danik.js
|
Я не знаю почему во всех учебниках предлагают такой вариант. Но он не совсем верный.
Корректней будет так:
ChildC.prototype = Object.create(Parent.prototype);
// по идее еще нужно переопределить свойство constructor
Тогда в прототип не попадет свойство a = []. Оно там не нужно. Оно должно быть у каждого инстанса свое.
Делается так:
function ChildC() {
Parent.call(this);
}
|
Написано что в ie8- нет поддержки Object.create(), и предлагается использовать вот это
function inherit(proto) {
function F() {}
F.prototype = proto;
return new F;
}
Сообщение от danik.js
|
ChildC.prototype = Object.create(Parent.prototype);
// по идее еще нужно переопределить свойство constructor
Тогда в прототип не попадет свойство a = []. Оно там не нужно. Оно должно быть у каждого инстанса свое.
Делается так:
function ChildC() {
Parent.call(this);
}
|
А если мне нужно чтобы массив а был один для всех с определенными элементами. В потомках он меняться не должен, но обращение к нему обязательно. Как быть?