Показать сообщение отдельно
  #5 (permalink)  
Старый 06.12.2014, 15:14
Новичок на форуме
Отправить личное сообщение для wondertalik Посмотреть профиль Найти все сообщения от wondertalik
 
Регистрация: 06.12.2014
Сообщений: 7

Сообщение от 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);
}
А если мне нужно чтобы массив а был один для всех с определенными элементами. В потомках он меняться не должен, но обращение к нему обязательно. Как быть?
Ответить с цитированием