mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 18:32:22 +00:00
commit
3405f13070
@ -375,7 +375,7 @@ let s2 = Symbol.for('foo');
|
||||
s1 === s2 // true
|
||||
```
|
||||
|
||||
上面代码中,`s1`和`s2`都是 Symbol 值,但是它们都是同样参数的`Symbol.for`方法生成的,所以实际上是同一个值。
|
||||
上面代码中,`s1`和`s2`都是 Symbol 值,但是它们都是由同样参数的`Symbol.for`方法生成的,所以实际上是同一个值。
|
||||
|
||||
`Symbol.for()`与`Symbol()`这两种写法,都会生成新的 Symbol。它们的区别是,前者会被登记在全局环境中供搜索,后者不会。`Symbol.for()`不会每次调用就返回一个新的 Symbol 类型的值,而是会先检查给定的`key`是否已经存在,如果不存在才会新建一个值。比如,如果你调用`Symbol.for("cat")`30 次,每次都会返回同一个 Symbol 值,但是调用`Symbol("cat")`30 次,会返回 30 个不同的 Symbol 值。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user