Symbol.for机制有点类似于单例模式,首先在全局中搜索有没有以该参数作为名称的Symbol值,如果有,就返回这个Symbol值,否则就新建并返回一个以该字符串为名称的Symbol值。和直接的Symbol就点不同了。
var s1 = Symbol.for('foo'); var s2 = Symbol.for('foo'); s1 === s2 // true
Symbol.keyFor方法返回一个已登记的Symbol类型值的key。实质就是检测该Symbol是否已创建
var s1 = Symbol.for("foo"); Symbol.keyFor(s1) // "foo" var s2 = Symbol("foo"); Symbol.keyFor(s2) // undefined
Symbol.keyFor()方法:
此方法会获取对应Symbol值的键。
更多关于Symbol内容可以参阅ES2015 Symbol一章节。
语法结构:
Symbol.keyFor(sym);
参数解析:sym必需,要获取键值的Symbol值。
let s = Symbol.for("www.xttblog.com"); console.log(Symbol.keyFor(s)); let s = Symbol("www.xttblog.com"); console.log(Symbol.keyFor(s));
参考资料
- http://es6.ruanyifeng.com/#docs/symbol
: » Symbol.for(),Symbol.keyFor()
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/251378.html