PDA

Просмотр полной версии : Дурацкий вопрос


Alfer
09.07.2003, 19:19
И снова здраствуйте,

Стыдно спрашивать, но я оказывается не знаю как сделать копию объекта.


function Book(name, price){
this.name = name;
this.price = price;
}

book1 = new Book("Confederacy of Dunces", 19.95);
book2 = book1

Мне нужно чтобы book2 был новым объестом со всеми свойствами book1. Если я делаю "book2 = book1", то при изменений свойств book2, меняются свойства book1.

Заранее спасибо.

Dimonius
09.07.2003, 19:31
Book2 = new Book(n,p);

А так не катит?

DMN
09.07.2003, 19:34
function Book(name, price){
this.name = name;
this.price = price;
this.duplicate=function(){
return (new Book(this.name,this.price));
};
}

book1 = new Book("Confederacy of Dunces", 19.95);
book2 = book1.duplicate();

Alfer
10.07.2003, 17:52
Огромное спасибо всем кто откликнулся.

Я сам порылся в описании ECMSA, но ничего не нашёл, может просто не умею искать. :-)))
Хотя что такое наверняка должно быть.

Вообщем я остановился на методе (duplicate, thnks DMN). Конечно это не универсально, но на данный момент лучше не вижу.

С уваженим старина ALF

Nox Noctis
11.07.2003, 21:53
а другого способа сделать копию объекта не предусмотрено... :(

то есть только созданием нового обекта и копированием в него всех свойств...