javascript - Basic JS - 为什么这个 obj 没有更改为 undefined?

标签 javascript object reference

在下面的代码中,我明白为什么 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/

相关文章:

javascript - 禁用 dat.GUI 文件夹

java - 什么是类、引用和对象?

reference - CString::new().unwrap().as_ptr() 给出空 *const c_char

c++ - 为什么我可以更改 const T& 参数的成员

javascript - 在jquery中使用height()方法

javascript - 我如何重构这些脚本标签?

javascript - 正则表达式 匹配两个模式之间的所有内容 (javascript)

javascript - 如何使用 javascript 在 HTML 中的数组中显示访问的(通过 for 循环)对象

java - 尝试使用 java 中的变量将对象设置为 true 或 false

c++ - 引用如何在 C++ 内部存储?