Показать сообщение отдельно
  #9 (permalink)  
Старый 04.11.2014, 12:34
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,577

riva, в экземпляр(при этом свойства в протоипе перезаписаны не будут, просто станут недоступны для текущего экземпляра). В js нет никакой хитрой механики - просто цепочка объектов-прототипов. Как луковица. Когда запрашивается свойство\метод - оное ищется в текущем объекте, если там его нет - ищется в прототипе, нет там - в прототипе прототипа итд. Если производится запись - пишется в самый нижний объект(независимо от того есть ли вышестоящем прототипе подобное свойство).
Если вы хотите сделать некие общие для всех экземпляров параметры, которые при этом можно изменять - делайте объект параметров:
function Test( args ){
    this.init( args );
}
 
Test.prototype = {
    params: {
        name: undefined
    },
    length: NaN,
    init: function( args ){
        this.params.name = args.name;
        this.length = this.parse( this.params.name );
    },
    parse: function( args ){
        // ...
        return length;
    }
};
таким образом запрашивается отдельный объект из прототипа и уже в оный происходит запись.
__________________
29375, 35

Последний раз редактировалось Aetae, 04.11.2014 в 12:38.
Ответить с цитированием