javascript - 重新分配 javascript 对象
问题描述
如果 javascript 对象是通过引用分配的,第二个 console.log 不应该显示 obj2 = {c:3}
let obj1 = {a:1}
let obj2 = {b:2}
obj2 = obj1
console.log(obj2) // {a:1}
obj1 = {c:3}
console.log(obj2) // still {a:1}
解决方案
所以首先你有这个(两个引用都指向同一个对象):
obj1 => {a:1} <= obj2
当你这样做时obj1 = {c:3}
,你会做两件事:
- 切断连接
obj1 =x=> {a:1}
- 创建一个新的连接
obj1 => {c:3}
注意 obj2 没有改变(仍然指向同一个东西):obj2 => {a:1}
所以console.log(obj2)
还是应该={a:1}
推荐阅读
- javascript - 有人可以解释这条线在做什么吗
- dart - 如何访问合并流的先前值?
- javascript - 反应 createElement 和不变的错误
- css - 输入忽略 CSS 网格
- python - 在 Windows 10 中为 python 代码安装依赖项?
- scala - Akka Streams,将元组项目分开?
- android - 如何从 Retrofit2 调用 OnResponse 返回 Java 对象
- error-handling - 何时调用 RTCDataChannel.onerror?
- android - 可以在 android studio 中自动填充代码语句
- python - Tkinter 中的交互式 PyPlot 图未注册 MouseEvents