第 6 章 符号与符号属性

JS 已有的基本类型(字符串、数值、布尔类型、null 与 undefined)之外,ES6 引入了一种新的基本类型:符号(Symbol)。符号起初被设计用于创建对象私有成员,而这也是 JS 开发者期待已久的特性。在符号诞生之前,将字符串作为属性名称导致属性可以被轻易访问,无论命名规则如何。而 “私有名称” 意味着开发者可以创建非字符串类型的属性名称,由此可以防止使用常规手段来探查这些名称。

“私有名称” 提案最终发展成为 ES6 中的符号,而本章将会教你如何有效使用它。虽然它只保留了实现细节(即:引入了非字符串类型的属性名)而丢弃了私有性意图,但它仍然显著有别于对象的其余属性。