Ich habe eine ES6-Klasse (transcompiled mit Babeljs) mit einer Getter-Eigenschaft. Ich verstehe, dass diese Eigenschaften standardmäßig nicht aufzählbar sind. Allerdings verstehe ich nicht, warum ich nicht in der Lage bin die Eigenschaft enumerable mit Object.defineProperty
Einstellung eines ES6-Klassengetters auf aufzählbar
// 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']
Definieren Sie es auf dem Prototyp-Objekt. 'Object.defineProperty (Person.prototype, ...)' – Louy
@Louy gleichen Plunder mit Ihrem Vorschlag - keine Änderung: http://plnkr.co/edit/QkQ1JbFEjAAOIFPCtPk7?p=preview – lightswitch05