💡
原文中文,约3900字,阅读约需10分钟。
📝
内容提要
Symbol是ES6新增的原始数据类型,表示独一无二的值,可作为对象属性的键,避免键名重复问题。Symbol还可降低代码耦合,模拟私有方法,实现全局共享。可使用Symbol.for方法在全局注册表中查找已存在的Symbol,使用Symbol.keyFor方法判断Symbol是否在全局注册表中。ES6提供了Object.getOwnPropertySymbols方法获取对象中的Symbol键。Symbol不可强制转换为字符串。
🎯
关键要点
-
Symbol是ES6新增的原始数据类型,表示独一无二的值。
-
Symbol可以作为对象属性的键,避免键名重复问题。
-
创建Symbol时不需要使用new操作符,Symbol方法接收一个描述参数。
-
即使传入相同的参数,生成的Symbol值也是不相等的。
-
Symbol的唯一性特性可以用于对象属性,避免属性冲突。
-
Symbol可以降低代码耦合,减少魔法字符的使用。
-
可以利用Symbol模拟类的私有方法。
-
通过Symbol.for()方法可以在全局注册表中查找或创建Symbol。
-
Symbol.keyFor()方法可以判断Symbol是否在全局注册表中。
-
ES6提供Object.getOwnPropertySymbols方法获取对象中的Symbol键。
-
Symbol不可强制转换为字符串,直接相加会报错。
➡️