File tree Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Expand file tree Collapse file tree 1 file changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -99,6 +99,33 @@ Number(sym) // TypeError
9999sym + 2 // TypeError
100100```
101101
102+ ## Symbol.prototype.description
103+
104+ 创建 Symbol 的时候,可以添加一个描述。
105+
106+ ``` javascript
107+ const sym = Symbol (' foo' );
108+ ```
109+
110+ 上面代码中,` sym ` 的描述就是字符串` foo ` 。
111+
112+ 但是,读取这个描述需要将 Symbol 显式转为字符串,即下面的写法。
113+
114+ ``` javascript
115+ const sym = Symbol (' foo' );
116+
117+ String (sym) // "Symbol(foo)"
118+ sym .toString // "Symbol(foo)"
119+ ```
120+
121+ 上面的用法不是很方便。[ ES2019] ( https://github.com/tc39/proposal-Symbol-description ) 提供了一个实例属性` description ` ,直接返回 Symbol 的描述。
122+
123+ ``` javascript
124+ const sym = Symbol (' foo' );
125+
126+ sym .description // "foo"
127+ ```
128+
102129## 作为属性名的 Symbol
103130
104131由于每一个 Symbol 值都是不相等的,这意味着 Symbol 值可以作为标识符,用于对象的属性名,就能保证不会出现同名的属性。这对于一个对象由多个模块构成的情况非常有用,能防止某一个键被不小心改写或覆盖。
You can’t perform that action at this time.
0 commit comments