Symbol是具有唯一性的特殊标识符,符号可以用作属性名,但无论是在代码还是控制开发台都无法查看和访问它的值,只会显示Symbol(Symbol.create)类似的值
ES6中有预定义的符号,以Symbol的静态属性形式出现,如Symbol.create,Symbol.iterator,可以这样使用:
1 | obj[Symbol.iterator]=function(){} |
可以使用Symbol(…)原生构造函数来自定义符号,但是不能用new
1 | var mysym=Symbol("my on symbol") |
Symbol不是对象,是一种简单的标量基本类型