我喜欢Object.getOwnPropertyNames方法。它看起来像是一个用于从JS shell中学习对象的有用工具。 (注意:在我的测试中,我运行的是ECMA 5实现 - 谷歌浏览器版本28.0.1500.95)。但是,我发现getOwnPropertyNames似乎缺少一些东西。Javascript的“Object.getOwnPropertyNames”缺少属性?
下面是一个例子:
> var x= []
undefined
> x.constructor
function Array() { [native code] }
> Object.getOwnPropertyNames(x)
["length"]
然而显然,x具有很多特性! (例如https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype)
> x.push
function push() { [native code] }
> x.pop
function pop() { [native code] }
任何人都可以帮助解释这是怎么回事呢?谢谢! :D
编辑:好吧!我看到getOwnPropertyNames只获取手头对象的属性名称。有没有简单的方法来获得继承属性?或者唯一的方法是遍历object.constructor.prototype .__ proto__?
getOWNpropertyNames –
的编辑的问题成为可能重复的[如何列出JavaScript对象的性质](http://stackoverflow.com/questions/208016/how-to-list -the-属性对的一的JavaScript对象) – Djizeus