最近私は本当に楽しんでいるES6に取り組んでいます。クラスのすべてのacessorsを列挙できません - 可能なバグ?
問題は、私が本当に悪い問題を経験したことです。クラスのすべてのプロパティ記述子を列挙する方法を見つけることができません。
class A {
get property(){
return "the 'a' value";
}
}
const a = new A();
const b = {
get property() {
return "the 'b' value";
}
};
const objectKeys = (obj) => {
return Object.keys(obj).join(', ');
};
const objectPropertyNames = (obj) => {
return Object.getOwnPropertyNames(obj).join(', ');;
};
const objectForIn = (obj) => {
const result = [];
for(const prop in obj){
result.push(prop);
}
return result.join(', ');;
}
console.log(objectKeys(a)); // Output empty string
console.log(objectKeys(b)); // Output 'property'
console.log(objectPropertyNames(a)); // Output empty string
console.log(objectPropertyNames(b)); // Output 'property'
console.log(objectForIn(a)); // Output empty string
console.log(objectForIn(b)); // Output 'property'
console.log(a.hasOwnProperty("property")); // Output false
console.log(b.hasOwnProperty("property")); // Output true
console.log(Object.getOwnPropertyDescriptor(a, "property")); // Output undefined
console.log(Object.getOwnPropertyDescriptor(b, "property")); // Output a valid descriptor