📅  最后修改于: 2023-12-03 14:42:28.426000             🧑  作者: Mango
Symbol.for()函数是JavaScript中对Symbol类型进行全局注册的方法。它接受一个字符串作为参数,在全局symbol注册表中搜索具有该字符串名称的symbol。如果找到符号,则返回它,否则将创建一个新的symbol,并在全局注册表中设置字符串名称。
Symbol.for(key)
返回全局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键名。