Javascript delete 引用类型对象

2019-12-24,,,,

如下面例子:


复制代码 代码如下:
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对象参数的引用传递
  • javascript原始值和对象引用实例分析
  • js中判断Object、Array、Function等引用类型对象是否相等
  • JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
  • javascript引用对象的方法代码
  • javascript引用对象的方法
  • 浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
  • JavaScript数组对象赋值用法实例
  • JS模拟面向对象全解(二、类型与赋值)
  • JavaScript对象引用与赋值实例详解

《Javascript delete 引用类型对象.doc》

下载本文的Word格式文档,以方便收藏与打印。