JavaScript Object.getOwnPropertySymbols() 方法

Object.getOwnPropertySymbols() 语法

Object.getOwnPropertySymbols() 是 JavaScript 的一个静态方法,它用于返回一个数组,该数组包含了指定对象的所有 Symbol 属性名。

Symbol 是一种新的原始数据类型,在 ES6 (ECMAScript 2015) 中引入,用于创建独一无二的属性键,从而避免命名冲突。

语法:

Object.getOwnPropertySymbols(obj)

说明:

Object.getOwnPropertySymbols() 方法接收单个参数。

  • obj(必选):是一个对象。

对于 Object.getOwnPropertySymbols() 方法,小伙伴们要清楚以下几点。

  • Object.getOwnPropertySymbols() 只会返回 “自身” 的 Symbol 属性,不包括字符串键的属性,也不包括原型链上的继承属性。
  • Symbol 属性是不可枚举的。这意味着它们不会出现在 for...in 循环、Object.keys() 或 Object.getOwnPropertyNames() 的结果中。Object.getOwnPropertySymbols() 提供了一种专门的方式来访问这些 “隐藏” 的属性。
  • 如果需要获取所有自身属性(包括字符串键和 Symbol 键),我们应该使用 Reflect.ownKeys()。

注意: getOwnPropertySymbols() 是一个静态方法,它只能被类名(即 Object)调用,而无法被实例调用。

Object.getOwnPropertySymbols() 摘要

属于 JavaScript Object 对象
使用频率
官方文档 查看
MDN 查看

Object.getOwnPropertySymbols() 示例

接下来,我们通过一个简单的例子来讲解一下 Object.getOwnPropertySymbols() 方法是如何使用的。

示例:Object.getOwnPropertySymbols() 基本用法

const obj = {
    a: "a"
};
const b = Symbol("b");
const c = Symbol.for("c");

obj[b] = "foo";
obj[c] = "bar";

const result = Object.getOwnPropertySymbols(obj);
console.log(result);

运行结果如下。

[ Symbol(b), Symbol(c) ]

分析:

obj 对象包含了 3 个属性:a、Symbol(b)、Symbol(c),而 Object.getOwnPropertySymbols() 只会返回所有 Symbol 类型的属性。

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号