登录
首页 >  文章 >  前端

Reflect.ownKeys详解:获取对象所有自身属性键

时间:2026-03-14 15:59:37 340浏览 收藏

Reflect.ownKeys 是 JavaScript 中最全面的对象自有属性键提取工具,它一次性返回对象自身所有键——无论是否可枚举、无论类型是字符串还是 Symbol,甚至包括数字索引属性,却严格排除原型链上的任何继承属性;更值得留意的是,其返回数组遵循精密的排序逻辑:数字索引升序优先,随后是字符串键的插入顺序,最后是 Symbol 键的创建顺序——掌握它,你就真正拥有了透视对象内部结构的“全息扫描仪”。

JavaScript 的 Reflect.ownKeys 方法返回的键列表包含哪些属性?

JavaScript 的 Reflect.ownKeys 方法返回一个对象自身的所有属性名组成的数组,包括:

包含的属性类型

该方法会返回对象自身拥有的所有键,不论其可枚举性、属性类型或是否为字符串/符号(Symbol)键。具体包括以下三类:

  • 字符串命名的属性键:如 'name''age' 等普通属性名。
  • Symbol 类型的属性键:通过 Symbol 创建的唯一键,例如 Symbol('id')
  • 不可枚举属性:即使属性设置了 enumerable: false,也会被包含在结果中。

不包含的属性

for...inObject.keys() 不同,Reflect.ownKeys 不会访问原型链上的继承属性。它只关注对象自身的键。

  • 不会包含从原型继承的任何属性,无论是否可枚举。

返回顺序规则

返回的键列表遵循特定排序规则:

  • 首先按类型分为两组:数字索引键(如 '0', '1')排在前面,按升序排列。
  • 然后是其他字符串键,按添加顺序排列。
  • 最后是 Symbol 键,也按添加顺序排列。

基本上就这些。Reflect.ownKeys 是获取对象完整自有键列表最全面的方法。

今天关于《Reflect.ownKeys详解:获取对象所有自身属性键》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>