如下面範例:
var testVar = {
var testVar = {
test : 1
} test2 = {};
test1.a = testVar.a > test1.a = testVar.a > testVar.a;
/*
delete test1.a;
console.log(test1.a); // undefinetest console.log(testVar.a); // Object {test: 1}
*/
{test: 1}
console.log(test2.a); // Object {test: 1}
console.log(testVar.a); // undefd;
透過測試可以看出,javascript的delete刪除的對像如果是一個引用類型,那麼它刪除的不是引用的對象,而是指向該引用對象的指針。因此,即使 delete testVar.a ,test1.a指向的物件仍然沒有刪除。
更多關於javascript delete關鍵字的原理,推薦:
http://perfectionkills.com/understanding-delete/
翻譯版本:
http://www.ituring.com.cn/article/7620