L-xl 2020-11-17 10:41 采纳率: 75%
浏览 50
已结题

js中引用类型的赋值问题

  let b = {id: 123};
  console.log(b);   //  {id:234}
  b.id = 234;
  console.log(b);   //  {id:234}
  
  let b = {id: 123};
  console.log(b.id);    //  123
  b.id = 234;
  console.log(b.id);    //  234

我知道对象是引用类型这里打印b是打印b指向的内存空间,但是同步执行,在打印第一个b的时候我还没有改变b的值,我预期第一个打印结果是{id:123},第二个打印结果是{id:234},这里面却全是{id:234},请各位大佬指点一下,这是什么原因?小菜鸡在线求教!!

  • 写回答

3条回答 默认 最新

  • qq_26397031 2020-11-18 17:12
    关注

    因为控制台打印的也只是这个对象的一个快照,相当于引用地址,你点开看的时候才回去查询,所以就出现这种情况。你可以试试console.log(JSON.stringfy(b))就能得到正确的结果

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

报告相同问题?

问题事件

  • 系统已结题 12月20日
  • 已采纳回答 12月12日

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?