我希望能够遍历所有对象的成员。像这样的东西:
function reflect(obj) {
var str = "";
for (member in obj) { str += (member + "\n"); }
return str;
}
但 Enumerable 标志会阻止 for 循环中的许多成员出现。 我的问题是:
是否有另一种方法来迭代一个对象的成员,这些成员公开所有
如果没有,是否可以访问这些标志? (我将可枚举设置为true?)
有没有办法公开原型链并确定哪个成员属于哪个祖先?
答案 0 :(得分:1)
您可以使用getOwnPropertyNames
。无论可枚举选项如何,它都会返回所有属性。
var objectProperties = Object.getOwnPropertyNames(obj);
更新这仅适用于Javascript 1.8.5及更高版本! (感谢@Kiyura)