在路上耶 2022-04-01 14:51 采纳率: 33.3%
浏览 25
已结题

引用数据类型赋值问题


  <script>
    let person = { name: "Lydia" };
    const menbers = [person]
    person = null
    console.log(person, menbers);
  </script>

我的思路理解输出的是 null [null]

我的疑问:person和menbers[0] 不应该指向同一地址数据,为什么person赋值为null menbers[0] 没有变

img

再次举例疑问点

为什么修改person的name或者menbers[0]的name 都相互影响
而上面的例子中为什么person赋值为null 没有影响到 menbers[0]


  let person = { name: "Lydia" };
    const menbers = [person]
    console.log(person == menbers[0]);  // true
    person.name = 'huge'
    menbers[0].name = '梅长苏'
    console.log(person, menbers);

img

img

  • 写回答

2条回答 默认 最新

  • 归来巨星 前端领域新星创作者 2022-04-01 15:11
    关注

    内存地址
    person -> { name: "Lydia" } 指向

    menbers = [person] 相当于 menbers = [person指向的内存地址] 也就是 { name: "Lydia" }

    person=null 相当于重新指向了一个内存地址,但是menbers指向的是原来指向的内存地址

    内存地址中的数据变了 自然而然的也就变了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月3日
  • 创建了问题 4月1日

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!