Javascript 链接两个对象//更新第一个和第二个对象上的值
我编写这个函数是因为if必须使用不同的obj,并且两者都需要更新。 你觉得这个函数怎么样Javascript 链接两个对象//更新第一个和第二个对象上的值,javascript,oop,Javascript,Oop,我编写这个函数是因为if必须使用不同的obj,并且两者都需要更新。 你觉得这个函数怎么样 function associate( obj1 ,obj2 , key ){ if(typeof key === 'object'){ for ( var i in key ) associate(obj1, obj2 , key[i]); } else { obj1.watch(key, function (id, oldval,
function associate( obj1 ,obj2 , key ){
if(typeof key === 'object'){
for ( var i in key )
associate(obj1, obj2 , key[i]);
} else {
obj1.watch(key, function (id, oldval, newval) {
obj2[id] = newval;
return newval;
});
}
}
这行不通。一点也不
obj = { key1: 'value2', key2: 'value2'}
obj2 = {key1: 'value2', key2 : 'value2'}
associate( obj ,obj2 , 'key1' )
obj.key1 = 'new value';
console.log(obj.key1)
--> 'new value'
console.log(obj2.key1)
--> 'new value'
特别是这不会让你有任何进展
如果您想在代码中发现问题,请随意使用。有点CW(社区维基)的味道。我认为这是一种功能。我可能错了。它可能需要参数。对此也不确定。这里的问题是什么?我们怎么想?这太宽泛了。它起作用了,这不是问题,问题是,这是一个好的实践吗?事实上,它在理论上(我们都知道这和实践不一样)不应该起作用——我要说不,它不是。好吧,我改成了‘obj2[id]=newval;返回newval;'即使在理论上,它现在还能工作吗?现在没有错误了。因此,是的,它是有效的,尽管令人困惑。但那只是因为它断章取义
return obj1[id] = obj2[id] = newval;