Показать сообщение отдельно
Старый 08.09.2007, 04:36
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 2  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Код:
 
o1 = {a:1, b:2, c:3, d:{x:2,y:5} };
function cloneSimpleObj( obj:Object ) : Object{
 var o:Object = new Object();
 for( var p in obj ) o[p] = obj[p];
 return o;
}
function cloneObj( obj:Object ) : Object{
 var o:Object = new Object();
 for( var p in obj ){
  if( typeof(obj[p]) == 'object' ) o[p] = arguments.callee( obj[p] );
  else o[p] = obj[p]; 
 }
 return o;
}
var o2:Object = cloneObj(o1);
var o3:Object = cloneSimpleObj(o1);
// меняем параметры оригинала
o1.a = 3;
o1.d.x = 22;
//смотрим что с клонами
trace(o2.a); //1
trace(o2.d.x);//2 - осталось прежним, d это клон
trace(o3.a);//1
trace(o3.d.x);//22 - изменилось, потому d это ссылка
Сами разберетесь?
Рекомендую все-таки вручную написать функцию для копирования. Может вам один объект надо по ссылке передать, а второй клонировать.
А куда смотреть.. В сторону книжного магазина, куда ж теперь без внешних файлов as..