但它的性能要比 object[key] = undefined 差很多
这个选择不是这个问题的正确答案!但是,如果你小心使用它,你可以大大加快一些算法。如果您delete在循环中使用并且在性能方面存在问题,可以考虑这种用法
在数组中,与普通的旧对象不同,使用delete在表单中留下垃圾,null在数组中创建一个“洞”, 而且length不变
因为对象在赋值时,其实是引用,并不是拷贝一份。
可以用以下代码:
Object.prototype.clone=function(){var newObj = new Object()
for(elements in this){
newObj[elements] = this[elements]
}
return newObj
}
var name = {a:'value1',b:'value2'}
var name2 = name.clone()
name2.a="aaa"
delete name2.a