delete和undefined

来源:互联网 发布:单片机ad测量正负电压 编辑:程序博客网 时间:2024/05/16 17:09

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

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

0 0