ゲッタープロパティを持つES6クラス(babeljsでトランスコンパイル)があります。私はこれらのプロパティがデフォルトで列挙できないことを理解しています。私がいない個々のperson
に、プロトタイプ上で定義されているObject.defineProperty
ES6クラスのゲッターを列挙可能に設定する
// Declare class
class Person {
constructor(myName) {
this.name = myName;
}
get greeting() {
return `Hello, I'm ${this.name}`;
}
}
// Make enumerable (doesn't work)
Object.defineProperty(Person, 'greeting', {enumerable: true});
// Create an instance and get enumerable properties
var person = new Person('Billy');
var enumerableProperties = Object.keys(person);
// => ['name']
プロトタイプオブジェクトで定義します。 'Object.defineProperty(Person.prototype、...)' – Louy
@Louyあなたの提案と同じプランナー - 変更なし:http://plnkr.co/edit/QkQ1JbFEjAAOIFPCtPk7?p=preview – lightswitch05