根据某个符号名称(符号描述)能够得到同一个符号
const obj2 = (() => {const s = Symbol('sd')return {a: 1,b: 2,[s]: 123,}})()
共享符号语法
Symbol.for("符号名/符号描述") //获取共享符号
将最上面的普通符号修改为共享符号代码如下
const obj = (() => {const s = Symbol.for('sd')return {a: 1,b: 2,[s]: 123,}})()
其实现原理
const SymbolFor = (() => {const global = {};//用于记录有哪些共享符号return function (name) {console.log(global)if (!global[name]) {global[name] = Symbol(name);}console.log(global);return global[name];}})();const syb1 = SymbolFor("abc");const syb2 = SymbolFor("abc");console.log(syb1 === syb2);
