我对 JavaScript 对待作为参数传递给函数的对象的方式有点困惑。
例如,在以下代码中:
var a = {
val: "old"
};
var b = {
val: "old"
};
function update(a, b) {
a.val = "new";
b = {
val: "new"
};
}
update(a, b);
console.log(a, b);
输出如下:
val
a
的属性(property)已更改,但 b
的更改不是。我在某处读到,对象是通过引用函数来传递的。谁能解释一下这种行为。
提前致谢。
最佳答案
当你做这个
function update(a, b) {
a.val = "new";
b = {
val: "new"
};
}
您将 b 指向一个新对象,但仅在更新函数中
关于JavaScript 对象作为函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43731239/