首页 > 解决方案 > javascript 的对象通过引用传递的例外是什么?

问题描述

考虑两个片段

const sayMyName = wizard => {
  wizard.name = 'Shazam';
}

let boy = { name: 'Billy' };

sayMyName(boy);

console.log(boy.name);

由于我们知道 js 中的对象是通过引用传递的,因此对 boy 对象的引用被分配了一个值为“Shazam”的属性。由于存储参考处的对象已更改,因此男孩的名字更改为“Shazam”。

const sayMyName = wizard => {
  wizard = { name: 'Shazam' };
}

let boy = { name: 'Billy' };

sayMyName(boy);

console.log(boy.name);

考虑到上述情况,当 Boy 在 sayMyName 函数中传递时,为什么它表现为按值传递而 boy.name 仍然返回 'billy' ?

标签: javascriptobjectpass-by-reference

解决方案


推荐阅读