Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как записать в массив новый объек а не ссылку на исходный объект (https://javascript.ru/forum/misc/7527-kak-zapisat-v-massiv-novyjj-obek-ne-ssylku-na-iskhodnyjj-obekt.html)

Dmitry A. Soshnikov 07.02.2010 23:34

Цитата:

Сообщение от Casufi
В конечном результате свойство editable не определено

Octane уже отметил - Вы перекрываете дефолтное свойство из прототипа свойством инстанса с возможным значением undefined.

Можно в конструкторе пройтись циклом по объекту data и присвоить соответствующие свойства this-объекту (т.е., то, что придёт в data, будет перекрыто, иначе - унаследуется из прототипа).

Casufi 07.02.2010 23:54

Цитата:

Сообщение от Octane (Сообщение 43943)
так вы в конструкторе создаете одноименное свойство объекта со значением undefined

Это я уже понял.
Но, если я убираю это поле из конструктора, я теряю возможность переопределять его значение.
Если честно, не совсем понял как в данной конструкции можно задать дефолтные значения, которые потом могут быть переопределены.

PeaceCoder 08.02.2010 02:40

Во первых Вы не проверяете на вообще существование data
function ColModel(data) {
data=data||{}
for (prop in data) if (data.hasOwnProperty(prop)) this[prop]=data[prop];
}


Часовой пояс GMT +3, время: 10:49.