Скопировать объект но не стать им
function myBook(){
this.x = 0;
this.y = 0;
}
book = new Array();
book[0] = new myBook();
book[1] = book[0];
book[1].x = 1;
alert(book[0].x);
В этом случае book[1] - становится как бы ярлыком на book[0]; а мне надо так чтобы он скопировался, не подскажите как это сделать? |
function myBook(){
this.x = 0;
this.y = 0;
}
book = new Array();
book[0] = new myBook();
book[1] = new myBook();
book[1].x = 1;
alert(book[0].x);
|
Мне важно, чтобы book[1] принял теже параметры что и у book[0];
function myBook(){
this.x = 0;
this.y = 0;
}
book = new Array();
book[0] = new myBook();
book[0].x+=10;book[0].y+=10;
book[1] = book[0];
book[1].x = 1;
alert(book[0].x);
|
function myBook(){
this.x = 0;
this.y = 0;
}
book = new Array();
book[0] = new myBook();
book[1] = new myBook();
book[1].x = book[0].x
book[1].y = book[0].y
book[1].x = 1
alert(book[0].x);
|
Цитата:
Мне остается только дать ссылку, по которой приводится пример как это сделать кросс-браузерно и немного невнятной альтернативы ниже.
function MyBook() {
this.x = 0;
this.y = 0;
}
MyBook.prototype.copyFrom = function( obj ) {
var key;
for( key in obj ) {
if ( obj.hasOwnProperty( key ) ) {
this[ key ] = obj[ key ];
}
}
};
book = [ new MyBook(), new MyBook() ];
book[ 0 ].x = 11;
book[ 0 ].y = 12;
book[ 1 ].copyFrom( book[ 0 ] );
alert( book[ 1 ].x );
|
| Часовой пояс GMT +3, время: 11:25. |