javascript複製オブジェクト

2455 ワード

oldObjは値ではなく対象です.
例えば、var newObj=oldObj;
oldObjを変更したい場合はnewObjに影響しません.
このように関数を書くことができます.

  
    
function clone(myObj){
if ( typeof (myObj) != ' object ' ) return myObj;
if (myObj == null ) return myObj;

var myNewObj = new Object();

for ( var i in myObj)
myNewObj[i]
= clone(myObj[i]);

return myNewObj;
}
このように呼び出します

  
    
newObj = clone(oldObj)
その後、oldObjの値はどのように変化してもnewObjに影響しません.