为了账号安全,请及时绑定邮箱和手机立即绑定

重新分配javascript对象

重新分配javascript对象

UYOU 2021-12-02 19:28:52
如果 javascript 对象是通过引用分配的,那么第二个 console.log 不应该显示 obj2 = {c:3}let obj1 = {a:1}let obj2 = {b:2}obj2 = obj1console.log(obj2) // {a:1}obj1 = {c:3}console.log(obj2)  // still {a:1}
查看完整描述

2 回答

?
繁华开满天机

TA贡献1816条经验 获得超4个赞

所以首先你有这个(两个引用都指向同一个对象):

obj1 => {a:1} <= obj2

当你这样做时obj1 = {c:3},你会做两件事:

  • 切断连接 obj1 =x=> {a:1}

  • 创建新连接 obj1 => {c:3}

请注意 obj2 没有改变(仍然指向同一件事): obj2 => {a:1}

所以console.log(obj2)应该仍然是 ={a:1}


查看完整回答
反对 回复 2021-12-02
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

简而言之,变量引用改变了,但内存地址没有改变:

//img1.sycdn.imooc.com//61a8ae120001e17906230845.jpg


查看完整回答
反对 回复 2021-12-02
  • 2 回答
  • 0 关注
  • 172 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信