📜  JavaScript | Symbol.for()函数(1)

📅  最后修改于: 2023-12-03 14:42:28.426000             🧑  作者: Mango

JavaScript | Symbol.for()函数

Symbol.for()函数是JavaScript中对Symbol类型进行全局注册的方法。它接受一个字符串作为参数,在全局symbol注册表中搜索具有该字符串名称的symbol。如果找到符号,则返回它,否则将创建一个新的symbol,并在全局注册表中设置字符串名称。

语法
Symbol.for(key)
  • key:字符串,用于在全局注册表中搜索Symbol。
返回值

返回全局symbol注册表中具有指定名称(即key)的symbol。

使用方法

Symbol.for()方法通常与Symbol.keyFor()方法一起使用,用于在全局注册表中查找symbol并将其与字符串名称关联起来。下面是一个使用示例:

const KEY1 = Symbol.for('name');
const KEY2 = Symbol.for('age');

let obj = {
  [KEY1]: 'Tom',
  [KEY2]: 18
};

console.log(obj[KEY1]); // Tom
console.log(obj[KEY2]); // 18

let globalKey1 = Symbol.for('name');
console.log(globalKey1 === KEY1); // true

在上面的示例中,Symbol.for()函数使用已经存在的字符串名称来搜索全局注册表以获取Symbol。由于已经存在一个名为“name”的Symbol,因此返回该全局Symbol,其实际与名为“KEY1”的Symbol相同。然后,我们通过为对象的属性设置Symbol值,将Symbol添加到对象,并通过Symbol键检索对象的属性值。最后,我们使用Symbol.keyFor()方法检索全球Symbol注册表中的Symbol键名。

注意事项
  • Symbol.for()方法将字符串名称与Symbol进行关联,并将Symbol添加到全球Symbol注册表。每次调用Symbol.for()方法时,如果全球Symbol注册表中存在具有名称的Symbol,则将返回此Symbol,否则将创建一个新的Symbol并添加到全球Symbol注册表中。
  • 全球Symbol注册表是一组键值对,其中键是字符串名称,值是Symbol。它是一个全球对象,可用于跨多个模块和框架共享Symbol。