symbol在业务层有什么应用场景
特性
Symbol 类型的 key 是不能通过 Object.keys()或者 for…in 来枚举的,它未被包含在对象自身的属性名集合 (property names) 之中。所以,利用该特性,我们可以把一些不需要对外操作和访问的属性使用 Symbol 来定义
JSON.stringify(obj); // {"age":18,"title":"Engineer"}
如何获取symbol定义的key
// 使用Object的API
Object.getOwnPropertySymbols(obj); // [Symbol(name)]
// 使用新增的反射API
Reflect.ownKeys(obj); // [Symbol(name), 'age', 'title']