symbol是es6新出的属性,特点是:独特且不可变,你真的懂唯一~的定义
es6定制的api:
主要用于依赖注入与私有属性(头疼)
chatgpt:
私有属性(模拟)
依赖注入
1 | javascript复制代码const SERVICE_TOKEN = Symbol('MyService'); |
扩展第三方库或内置对象
避免破坏原有功能,通过 Symbol 添加新特性:
1 | javascript复制代码const myArray = [1, 2, 3]; |
枚举成员的唯一标识
在实现枚举类型时,可以用 Symbol 确保每个枚举值都是唯一的:
1 | javascript复制代码const Colors = { |
元编程与协议扩展
在普通业务代码中: 使用频率较低,尤其是小型项目或简单应用中,因为其功能更适合特定需求(如依赖注入、扩展库功能)。
在框架与库中:
使用较为频繁。例如: