JS:相关对象
问题描述:
情景: - 填写object1 - 复制的object1的内容,对象2 - 从object1JS:相关对象
结果现在删除元素: - 既object1和对象2有1元删...?!
祝愿结果: - object1应该有1元比对象2
的代码少:
var object1 = new Object();
object1['key_one'] = 'value_1';
object1['key_two'] = 'value_2';
object1['key_three'] = 'value_3';
object1['key_four'] = 'value_4';
var object2 = new Object();
object2 = object1;
delete object1['key_three'];
我在做什么错?
答
你的代码不会做任何复制。 object2
只是一个新的空对象。试试这个:
var object1 = {
key_one: "value_1",
key_two: "value_2",
key_three: "value_3",
key_four: "value_4"
};
var object2 = {};
for (var prop in object1) {
object2[prop] = object1[prop];
}
delete object1["key_three"];
现在object2
是object1
副本,但是从object1
删除的属性不会影响object2
。
希望是有道理的。
答
它在我看来不像object2曾经收到object1的任何属性。你在正确的轨道上,但你需要复制它们。
var object1 = new Object();
object1['key_one'] = 'value_1';
object1['key_two'] = 'value_2';
object1['key_three'] = 'value_3';
object1['key_four'] = 'value_4';
var object2 = new Object();
for(var i in object1){
object2[i] = object1[i];
}
delete object1['key_three'];
我没有看到任何与多维数组的关系.. – mykhal 2010-08-12 19:22:16
您的代码与您的解释不符。我怀疑你正在做一个浅拷贝,但你的代码根本没有拷贝。 – deinst 2010-08-12 19:22:32