在 JavaScript 中,Symbol
类型还有一些内置的方法,允许您对符号进行操作和检查。以下是 Symbol
类型的一些常用方法:
-
Symbol.for(key)
- 返回一个以指定的键为描述符的符号,如果不存在则创建一个新的符号。
- 参数
key
是一个字符串,用作符号的全局键。
const globalSymbol = Symbol.for('global'); const globalSymbol2 = Symbol.for('global'); // 获取已存在的全局符号 console.log(globalSymbol === globalSymbol2); // 输出:true
-
Symbol.keyFor(sym)
- 返回全局符号注册表中与给定符号关联的键。
- 参数
sym
是一个符号。
const globalSymbol = Symbol.for('global'); const key = Symbol.keyFor(globalSymbol); console.log(key); // 输出:global
-
Symbol.iterator
- 返回一个用于对象的默认迭代器方法的 Symbol 值。
- 通过在对象上暴露这个 Symbol,可以使对象变得可迭代,从而可以在
for...of
循环中使用。
const myIterable = { [Symbol.iterator]: function* () { yield 1; yield 2; yield 3; } }; for (const value of myIterable) { console.log(value); } // 输出: // 1 // 2 // 3
这些方法可以让您更灵活地操作符号,例如在全局范围内共享符号,或者使用符号来定义可迭代的对象。