0
関数から、元のオブジェクトに影響を与えずに(つまり、副作用がなく)、引数として渡されたオブジェクトの修正バージョンを返すことを望みます。だから本質的に私は価値を渡したい。私はオブジェクトの(深い)コピーされたバージョンを変更して返すことによってこれをやろうとしました。しかし、私は今クローンオブジェクトに対して行った変更が依然としてオリジナルに影響を与えていることを発見しました。値で渡すためにオブジェクトのJavaScriptをコピーする
以下のコードスニペットは、私がこの問題を回避するにはどうすればよいoldObject
var clone = function(oldObject) {
return jQuery.extend(true, {}, oldObject);
}
var objf = function() {
var data = {list:[1],dic:{a:'3'}};
this.modifyMyData = function() {
data.list.push(3);
data.dic['e'] = 10;
}
this.getData = function() {
return data;
}
}
var old = new objf;
var newo = clone(old);
newo.modifyMyData();
のデータに影響を与えるのnewObjectにmodifyMyDataを呼び出すように、これを示していますか?