【发布时间】:2024-04-15 00:00:01
【问题描述】:
在 JavaScript 中,我们有几种获取对象属性的方法,具体取决于我们想要获取的内容。
1) Object.keys(),它返回一个对象的所有自己的、可枚举的属性,一个 ECMA5 方法。
2) 一个for...in循环,它返回一个对象的所有可枚举属性,无论它们是自己的属性,还是从原型链继承的。
3) Object.getOwnPropertyNames(obj) 返回对象的所有自身属性,无论是否可枚举。
我们还有 hasOwnProperty(prop) 这样的方法让我们检查属性是否被继承或实际上属于该对象,propertyIsEnumerable(prop) 顾名思义,让我们检查属性是否可枚举。
使用所有这些选项,没有办法获得对象的不可枚举、非自己的属性,这正是我想要做的。有没有办法做到这一点?换句话说,我能否以某种方式获得继承的不可枚举属性的列表?
谢谢。
【问题讨论】:
-
您的问题回答了我要问的问题:如何检查不可枚举的属性(只是为了探索预定义对象中可用的内容)。最后我找到了getOwnPropertyNames! :-)
-
@marcus :-) 这就是 SO 的全部意义所在!
标签: javascript oop object properties