javascript - 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' ?
解决方案
推荐阅读
- reactjs - 如何在不修改原始数据的情况下编辑 Gatsby GraphQL 数据
- javascript - Chrome 扩展开发:chrome.storage.local vs Indexeddb
- javascript - 如何访问对象的名称属性
- wordpress - wordpress 更新永久链接结构
- ruby-on-rails - Ruby on Rails:rails g 脚手架不生成任何视图
- javascript - 检测函数是否在 React 的另一个组件中被调用
- goland - 在 Goland 中转到对象类型定义的快速方法
- python - Pandas 根据条件返回索引和列名
- php - php如何在有许多斜杠的错字的情况下强制重定向
- python - 仅在设定频率下对选定索引进行随机替换