javascript - 关于js引用类型在chorme下遇到的问题
过去多啦不再A梦
过去多啦不再A梦 2017-05-19 10:44:03
[JavaScript讨论组]

关于引用类型,值的赋值只是堆内存的复制,就是多个变量指向同一个堆内存。但在chrome下,我测试的时候,遇到那么一个情况,希望大神们可以给我个解答

在下图中

  1. 我建了一个变量a,赋值了一个空对象给它

  2. 变量a赋值给变量b

  3. a追加一个属性name

  4. a注销

根据引用类型的使用,在a被注销的时候,对象应该被不存在了,但b依旧存在着这个引用。我的疑问就是这个,b输出的结果不应该是null也对吗?

过去多啦不再A梦
过去多啦不再A梦

全部回复(2)
高洛峰

举个例子:
a = {}; 假如 {} 在内存里的名字为 0x2334c;
b = a; 实际执行的是 b = 0x2334c;
a = null; 执行的是给a标记,等待销毁;
但b 还在引用 0x2334c ,所以0x2334c被没有被销毁;
除非 b和a = null;

滿天的星座

a,b都指向同一块地址c,将a=null,只是让a不再指向c,并不是将c的数据销毁,然而b还是指向c,没毛病

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号