欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript delete 引用類型對象

 更新時間:2013年11月01日 11:32:37   作者:  
很少使用javascript的delete,最近因為一個小bug發(fā)現(xiàn)刪除引用類型對象的時候有一點不同

如下面例子:

復制代碼 代碼如下:

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

相關文章

最新評論