总结:删除对象属性或变量(其实是删除映射,如果属性值被赋值给其他变量,该操作不会影响变量的值),释放内存空间,其值变成undefined;
delete object.property
delete object[property]
如下:delete obj.frends只是删除了obj的friends与对应数组的映射关系,friends属性不在引用数组,而friends变量引用了该数组,delete操作后该数组还存在
var obj = {
name:'jack',
friends:[
{
name:'lucy',
do:function(){
console.log('do')
}
}
]
}
var friends = obj.friends;
delete obj.friends
console.log(obj)//{name: "jack"}
console.dir(friends)//[name:'lucy',do:f]