更新JavaScript对象
问题描述:
我有以下目的:更新JavaScript对象
var obj1 = {};
obj1.obj2 = {
prop1: 0
};
和下面的函数:
function func1() {
var p = obj1.obj2.prop1;
p += 2;
return p;
};
当更新 'P' 还没有更新 'obj1.obj2.prop1'。而不是'p'指向原始对象,它现在是它自己的对象?如果是这样,我怎样才能让'p'指针?
答
当你做var p = obj1.obj2.prop1;
,要设置p
到prop1
值。因此,当您更新p
时,您只需更新p
中设置的值。
你可以做的是设置p
到obj1.obj2
。然后你可以更新p.prop1
,它应该更新obj1
。
function func1() {
var p = obj1.obj2;
p.prop1 += 2;
return p.prop1;
}
答
JavaScript没有通通过引用这样你就必须做到以下几点:
var obj1 = {};
obj1.obj2 = {
prop1: 0
};
function func1(obj) {
obj.obj2.prop1 += 2;
return obj.obj2.prop1;
};
func1(obj1);
答
p += 2
只是分配一个其他号码p
,这不是修改指向的对象p
。
而是执行此操作:
obj1.obj2.prop1 += 2;
或
var obj = obj1.obj2;
obj.prop1 += 2;
此答案可能有所帮助:http://stackoverflow.com/a/7744623/1618257 –