Javascript delete 引用类型对象

 更新时间:2013年11月01日 11:32:37   作者:  
很少使用javascript的delete,最近因为一个小bug发现删除引用类型对象的时候有一点不同

如下面例子:

复制代码 代码如下:

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

相关文章

  • js判断文本框输入的内容是否为数字

    js判断文本框输入的内容是否为数字

    这篇文章主要介绍了js判断文本框输入的内容是否为数字,本文为大家分享了验证文本框中的内容是否为数字的方法,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 详解JavaScript如何实现并发控制的Promise队列调度器

    详解JavaScript如何实现并发控制的Promise队列调度器

    Promise是JavaScript中一种处理异步操作的技术,提供了一种更优雅的方式来处理并发任务和串行化操作,本文主要介绍了实现并发控制的Promise队列调度器的方法,需要的可以参考一下
    2023-07-07
  • JavaScript编程的10个实用小技巧

    JavaScript编程的10个实用小技巧

    尽管我使用Javascript来做开发有很多年了,但它常有一些让我很惊讶的小特性。对于我来说,Javascript是需要持续不断的学习的。
    2014-04-04
  • Bootstrap轮播加上css3动画,炫酷到底!

    Bootstrap轮播加上css3动画,炫酷到底!

    这篇文章将展示如何在 Bootstrap轮播上添加有趣的动画效果,同时确保这个js组件自由扩展和快速上手,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • javascript中eval函数用法分析

    javascript中eval函数用法分析

    这篇文章主要介绍了javascript中eval函数用法,实例分析了javascript中eval函数的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • js实现Element中input组件的部分功能并封装成组件(实例代码)

    js实现Element中input组件的部分功能并封装成组件(实例代码)

    这篇文章主要介绍了纯生js实现Element中input组件的部分功能(慢慢完善)并封装成组件,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • JavaScript使用cookie实现记住账号密码功能

    JavaScript使用cookie实现记住账号密码功能

    这篇文章主要介绍了JavaScript使用cookie实现记住账号密码功能,本文直接给出完整测试代码,需要的朋友可以参考下
    2015-04-04
  • Bootstrap每天必学之前端开发框架

    Bootstrap每天必学之前端开发框架

    Bootstrap每天必学之前端开发框架,今天这篇文章就带着大家了解认识当下最流行的前端开发框架Bootstrap,bootstrap深受大家喜爱的原因到底是什么呢,我们一探究竟。
    2015-11-11
  • JS+JQuery实现无缝连接轮播图

    JS+JQuery实现无缝连接轮播图

    这篇文章主要介绍了JS+JQuery实现无缝连接轮播图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 7个好用的JavaScript技巧分享(译)

    7个好用的JavaScript技巧分享(译)

    这篇文章主要给大家介绍了7个好用的JavaScript技巧,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05

最新评论