2011-11-23 126 views
4

是否可以在IE8中模拟Object.getOwnPropertyNames是否可以在IE8中模拟Object.getOwnPropertyNames

我试图让这个fiddle在IE8中工作。

我相信唯一剩下的就是做一个函数来模拟getOwnPropertyNames

当然,在IE8中扩展JavaScript对象的基本问题的其他解决方案是非常值得赞赏的。

更新:工作fiddle它使用外部es5填充脚本文件。

结论:没有,但你可以匀Object.keys

+2

**结论**不,但你可以垫片Object.keys – Raynos

回答

8

Object.getOwnPropertyNames()返回一个对象都枚举不可枚举自己的属性。无法遍历ECMAScript 3rd Edition实现中的非枚举属性,因此只能获得可枚举的属性。

这是相当简单写一个返回枚举自己的属性:

var arr = []; 
for (var k in obj) { 
    if (obj.hasOwnProperty(k)) 
     arr.push(k); 
} 

这是(或多或少)的Object.keys()相当。但是,如果这还不够,那么你的运气不好。

+0

谢谢,似乎我的属性是可更新的小提琴作品enumerable。 – Farmor

+0

@Farmor:那么你应该使用['Object.keys'](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys)。 –

+0

是的,我同意,似乎正确的方式。 – Farmor

相关问题