我有这段代码
var myObjects = {}; //global variable
//Later on in the code:
for (i in myObjects)
{
var obj = myObjects[i];
process(obj);
}
function process(obj)
{
$.getJSON("example.com/process/", {id: obj.id}, function(result)
{
//Will the following change the permanent/global copy e.g
// myObjects[44] ?
obj.addItem(result.id, result.name, result.number);
}
);
}
请注意以下内容:
obj.addItem(result.id, result.name, result.number);
按值或按引用修改对象,即它会修改obj
或myObjects[44]
的本地副本吗?
如果它仅影响本地副本,我该如何更改对象的全局副本?
答案 0 :(得分:4)
答案 1 :(得分:1)
JavaScript正在按值传递,正如earlier question中所阐明的那样。 (拥有更多权力的人应该将此标记为重复 - 此处的答案不正确。)
答案 2 :(得分:0)
所有非对象变量都是按值传递..