ES6概念 ymbol.for()方法
程序员文章站
2022-04-15 16:25:51
symbol.for()方法:
使用symbol()方法可以创建一个symbol类型的值。
代码实例如下:
let s = symbol();
let on...
symbol.for()方法:
使用symbol()方法可以创建一个symbol类型的值。
代码实例如下:
let s = symbol(); let one = symbol(""); let two = symbol(""); console.log(one == two);
即便是键值相同两个symbol类型的值也是不相同的。
更多关于symbol的内容可以参阅es2015 symbol一章节。
使用symbol.for()方法也可以创建一个symbol类型的值,但是此方法和symbol()的一个重要区别是,它不会重复创建具有相同键的值,也就是说此方法在创建一个值之前,首先会搜索是否已经具有指定键的symbol类型的值,如果有则返回这个symbol值,否则新创建一个symbol值。
代码实例:
let one = symbol.for(""); let two = symbol.for(""); console.log(typeof one); console.log(one == two);
第一次调用symbol.for()方法会创建一个键值为""的symbol类型的值。
第二次调用的时候会搜索是否已经存在以""为键的symbol类型的值,如果存在就返回这个symbol值。
let one = symbol.for(); let two = symbol.for(); console.log(typeof one); console.log(one == two);
不传递参数也是同样的道理。
let one = symbol(""); let two = symbol.for(""); console.log(one == two);
symbol.for()创建的值会被登记在全局环境*搜索,而symbol()创建的值不会,所以symbol.for("")依然会新创建一个symbol值,而不是返回symbol("")创建的值。
上一篇: 你放屁吧?
下一篇: PHP实现取得HTTP请求的原文