获取对象的键值,一般常使用Object.keys(),Object.values(),但是如果对象属性包含Symbol类型的话就拿不到,如下所示
var person = {
name: '张三',
age: 20,
[Symbol('height')]: 170
}
for (let i in person){
console.log(i)//只会打印两次,name和gae
}
console.log(Object.keys(person)) // ['name', 'age']
console.log(Object.getOwnPropertySymbols(person)) //[Symbol(height)] 是打印出来了,但是别的属性没打印出来,只打印了Symbol类型,不符合预期目标
console.log(Reflect.ownKeys(person)) //['name', 'age', Symbol(height)] 这个全打印出来了
通过以上实践结果,以后要想稳妥一点还是使用Reflect.ownKeys()方法吧