现在的位置: 首页 > 综合 > 正文

delete和undefined

2019年03月16日 ⁄ 综合 ⁄ 共 372字 ⁄ 字号 评论关闭

删除某个对象的字段有两种方法:

var obj = {x:1,y:2,z:3};
delete obj.x;//方法一
//方法二 obj.x = undefined;

但是有时候方法二并不是那么恰当,有个对象如下:

var obj = {
 x:function(){console.log('wo shi x!');},
 y:function(){console.log('wo shi y!');},
 z:function(){console.log('wo shi z!');}
}

现在我们要删除掉一个字段,并遍历运行obj的所有字段

obj.x = undefined;
//遍历运行
for(var e in obj){
  obj[e]();
}

这时候,程序会报错!原因是undefined 不是一个 函数。

可见obj.x 并不是真的删除了,而是把他的值置为undefined,遍历的时候,仍然会遍历到这个key

抱歉!评论已关闭.