2

我希望能够遍历对象的所有成员。像这样的东西:

 function reflect(obj) {
 var str = "";
 for (member in obj) { str += (member + "\n"); }
 return str;
 }

但是Enumerable标志会阻止许多成员出现在for in循环中。我的问题是:

  1. 是否有另一种方法可以遍历一个对象的所有成员?

  2. 如果没有,是否可以访问这些标志?(可以将Enumerable设置为 true 吗?)

  3. 有没有办法暴露原型链并确定哪个成员属于哪个祖先?

4

1 回答 1

1

你可以使用getOwnPropertyNames它。无论可枚举选项如何,它都会返回所有属性。

var objectProperties = Object.getOwnPropertyNames(obj);

更新这仅适用于 Javascript 1.8.5 和更新版本!(感谢@Kiyura)

于 2012-09-22T14:23:59.803 回答