如何创建一个 Symbol?

推荐答案

在 ECMAScript 6 中,可以使用 Symbol() 函数来创建一个 Symbol。Symbol 是一种原始数据类型,表示独一无二的值。以下是创建 Symbol 的示例代码:

你也可以为 Symbol 添加一个可选的描述字符串,用于调试目的:

本题详细解读

Symbol 的基本概念

Symbol 是 ECMAScript 6 引入的一种新的原始数据类型,表示独一无二的值。Symbol 的主要用途是作为对象属性的键,确保属性名的唯一性,避免属性名冲突。

创建 Symbol

创建 Symbol 的最简单方式是调用 Symbol() 函数,不带任何参数:

每次调用 Symbol() 都会生成一个新的、唯一的 Symbol 值,即使它们的描述相同。

添加描述

在创建 Symbol 时,可以传递一个可选的字符串作为描述。这个描述主要用于调试,帮助开发者识别不同的 Symbol:

全局 Symbol 注册表

如果你希望在不同的地方使用同一个 Symbol,可以使用 Symbol.for() 方法。这个方法会在全局 Symbol 注册表中查找具有相同描述的 Symbol,如果找到则返回它,否则创建一个新的 Symbol 并注册到全局注册表中:

Symbol 作为对象属性

Symbol 可以作为对象的属性键,确保属性名的唯一性:

获取对象的 Symbol 属性

可以使用 Object.getOwnPropertySymbols() 方法获取对象的所有 Symbol 属性:

-- -------------------- ---- -------
----- --- - ---
----- ------- - ---------------
----- ------- - ---------------

------------ - ---------
------------ - ---------

----- ------- - ----------------------------------

--------------------- -- -------------- -------------

Symbol 的不可变性

Symbol 是不可变的,一旦创建就不能被修改。这使得 Symbol 非常适合用作对象属性的键,确保属性名的唯一性和不可变性。

纠错
反馈