Javascript delete 引用类型对象


Posted in Javascript onNovember 01, 2013

如下面例子:

var testVar = {
            a : {
                test : 1
            }
        },
            test1 = {},
            test2 = {};        test1.a = testVar.a;
        test2.a = testVar.a;
/*
        delete test1.a;
        console.log(test1.a); // undefined
        console.log(test2.a); // Object {test: 1}
        console.log(testVar.a); // Object {test: 1}
*/
        delete testVar.a;
        console.log(test1.a); // Object {test: 1}
        console.log(test2.a); // Object {test: 1}
        console.log(testVar.a); // undefined

通过测试可以看出,javascript的delete删除的对象如果是一个引用类型,那它删除的不是引用的对象,而是指向该引用对象的指针。因此,即使 delete testVar.a ,test1.a指向的对象仍然没有删除。

更多关于javascript delete关键字的原理,推荐:

http://perfectionkills.com/understanding-delete/

翻译版本:

http://www.ituring.com.cn/article/7620

Javascript 相关文章推荐
Tinymce+jQuery.Validation使用产生的BUG
Mar 29 Javascript
利用jquery动画特效和css打造的侧边弹出垂直导航
Apr 04 Javascript
详解javascript new的运行机制
Jan 26 Javascript
Javascript基础之数组的使用
May 13 Javascript
angular和BootStrap3实现购物车功能
Jan 25 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
Mar 06 Javascript
使用AngularJS2中的指令实现按钮的切换效果
Mar 27 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
Mar 30 Javascript
react-redux中connect()方法详细解析
May 27 Javascript
weex slider实现滑动底部导航功能
Aug 28 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
利用Electron简单撸一个Markdown编辑器的方法
Jun 10 Javascript
理解Javascript闭包
Nov 01 #Javascript
Javascript 命名空间模式
Nov 01 #Javascript
完美解决AJAX跨域问题
Nov 01 #Javascript
javascript中创建对象的几种方法总结
Nov 01 #Javascript
如何学习Javascript入门指导
Nov 01 #Javascript
js动态设置鼠标事件示例代码
Oct 30 #Javascript
获取非最后一列td值并将title设为该值的方法
Oct 30 #Javascript
You might like
joomla内置的表单验证功能使用方法
2010/06/11 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
一个php+js实时显示时间问题
2015/10/12 Javascript
BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
2016/12/01 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
JavaScript获取URL参数的方法之一
2017/03/24 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
有趣的python小程序分享
2017/12/05 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
pandas DataFrame运算的实现
2020/06/14 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
法学毕业生自荐信
2013/11/13 职场文书
安全教育心得体会
2013/12/29 职场文书
贷款担保申请书
2014/05/20 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
2014年个人售房协议书
2014/10/30 职场文书
爱晚亭导游词
2015/02/09 职场文书
个性发展自我评价2015
2015/03/09 职场文书
小学推普周活动总结
2015/05/07 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
python编程实现清理微信重复缓存文件
2021/11/01 Python
再谈python_tkinter弹出对话框创建
2022/03/20 Python