Reflect.ownKeys() 与 Object.keys() 区别
1 | var obj = { |
从结果上看出
Object.keys() 返回属性 key,但不包括不可枚举的属性
Reflect.ownKeys() 返回所有属性 key
Object.keys()
相当于返回属性数组
Reflect.ownKeys()
相当于 Object.getOwnPropertyNames(target) concat(Object.getOwnPropertySymbols(target))
- getOwnPropertyNames() 返回所有属性的数组
- Object.getOwnPropertySymbols() 返回所有符号属性直接发现在给定的对象
面试题:
设计一个对象,键名的类型至少包含一个 symbol 类型,并且实现遍历所有 key
1 | let name = Symbol("name"); |