如下面例子:
復制代碼 代碼如下:
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關鍵字的原理,推薦:
翻譯版本:
新聞熱點
疑難解答
圖片精選