delete和undefined

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值