如果直接调用 Symbol(),得到的就是一个唯一的 Symbol,但是有时候我们觉得这样并不好,我们就希望得到一个可以再次获取的 Symbol,这个时候就可以根据 Symbol.for() 函数创建,给这个函数传递一个字符串参数,就会根据我们的参数创建出一个 Symbol,并且如果使用该函数传入的是同样的参数,返回结果始终是同一个 Symbol。
js
const syb1 = Symbol.for("test");
const syb2 = Symbol.for("test");
console.log(syb1 === syb2);//true可以看出,这里是通过字符串 "test" 生成的 Symbol,此时这个 Symbol 是通过字符串 test 生成的,也就是说不管我在什么地方,只要是用字符串 test 生成的 Symbol,他都是一样的,这就是共享符号。
这个东西用的比较少,首先,由于这个东西不是唯一的,所以是可以被再次访问到的,并不能用于私有属性,同时,可能是有一些其他的原因,需要属性名必须是一个 Symbol,这个时候可能才需要使用这个东西。