Скопировать объект но не стать им
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, время: 09:08. |