在下面的代码中,我明白为什么 person.name
被更改为 "john"
,但我不完全理解为什么 person
根据下一行的 obj = undefined
,未在内存中引用 undefined
。
var person = { name: "wtf" };
function doStuff(obj) {
obj.name = "john";
obj = undefined;
}
doStuff(person);
person.name
现在等于 john
并且 person
仍然引用或“指向”对象而不是“指向”内存中的任何内容,即未定义。我可以在我的学习中发扬光大,并简单地依靠它以这种方式工作,但我永远无法准确阐明为什么它以这种方式工作。
最佳答案
你函数中的 obj
参数在函数调用中被传递给 person
的引用
doStuff(person);
参数值是存储在person
中的对象引用的副本。因此,当您为 obj
变量赋予新值时,这对 person
没有影响。
关于javascript - Basic JS - 为什么这个 obj 没有更改为 undefined?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41333415/