链接两个对象//更新第一个和第二个值
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并且两者都需要更新。 您对这个功能有什么看法?链接两个对象//更新第一个和第二个值
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'
它不起作用。完全一样。
return obj1[id] = obj2[id] = newval;
这特别是不会让你到任何地方。
如果您想在代码中查找问题,请随时使用http://www.jslint.com/。
它的工作,那不是问题,问题是,这是好的做法吗? – 2010-10-11 20:52:05
Byt事实上,它在理论上(我们都知道这与实践不一样)不应该工作 - 我要说不,事实并非如此。 – Mantar 2010-10-11 20:56:29
好吧,我改为'obj2 [id] = newval;返回newval;'它现在是否应该在理论上工作? – 2010-10-11 20:58:16
闻到一点CW(社区维基)。 – BrunoLM 2010-10-11 20:31:03
我认为这是一个功能。我可能是错的。它可能需要参数。不确定。 – 2010-10-11 20:31:24
这里有什么问题?我们怎么看?这太宽泛了。 – 2011-03-13 00:41:42