是否可以在IE8中模拟Object.getOwnPropertyNames
?
我正试图让这个fiddle在IE8中运行。
我相信唯一剩下的就是创建一个模拟getOwnPropertyNames
的函数。
当然,非常感谢在IE8中使用对象文字扩展JavaScript对象的基本问题的其他解决方案。
已更新:使用外部es5填充程序脚本文件工作fiddle。
结论:不,但你可以填充Object.keys
答案 0 :(得分:9)
没有
Object.getOwnPropertyNames()
返回对象的可枚举和非可枚举属性。在ECMAScript 3rd Edition实现中迭代不可枚举的属性是不可能的,因此您只能获取可枚举的那些属性。
编写一个返回枚举自己属性的过程非常简单:
var arr = [];
for (var k in obj) {
if (obj.hasOwnProperty(k))
arr.push(k);
}
这或多或少相当于Object.keys()
。但是,如果这还不够,那么你就不幸了。