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

时间:2011-11-23 10:44:37

标签: javascript oop internet-explorer-8

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

我正试图让这个fiddle在IE8中运行。

我相信唯一剩下的就是创建一个模拟getOwnPropertyNames的函数。

当然,非常感谢在IE8中使用对象文字扩展JavaScript对象的基本问题的其他解决方案。

已更新:使用外部es5填充程序脚本文件工作fiddle

结论:不,但你可以填充Object.keys

1 个答案:

答案 0 :(得分:9)

没有

Object.getOwnPropertyNames()返回对象的可枚举非可枚举属性。在ECMAScript 3rd Edition实现中迭代不可枚举的属性是不可能的,因此您只能获取可枚举的那些属性。

编写一个返回枚举自己属性的过程非常简单:

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

这或多或少相当于Object.keys()。但是,如果这还不够,那么你就不幸了。