const c = {};
const s = Symbol()
c[s] = true;
如何查看c的属性,包括符号属性?如果我这样做:
for(const [k,v] of Object.entries(c)){
console.log(k,v);
}
默认情况下不会获得符号等不可枚举的属性吗?我尝试过:
for(const k of Object.getOwnPropertyNames(c)){
console.log(k,c[k]);
}
但该列表也为空。
答案 0 :(得分:3)
您可以使用以下方式以稍微不同的方式访问它们:
let c = {
[Symbol("a")]: true
}
const keys = Reflect.ownKeys(c);
等效于
const keys = Object.getOwnPropertyNames(c).concat(Object.getOwnPropertySymbols(c))
Object.getOwnPropertyNames()
方法返回直接在给定对象上找到的所有属性的数组(无论是否可枚举)。
Object.getOwnPropertySymbols()
方法返回直接在给定对象上找到的所有符号属性的数组。