ich den folgenden Code haben, stark reduziert:warum zeigt für ... nur Methoden, die mit class.prototype definiert sind?
class Animal {
speak() {}
}
Animal.prototype.speaklouder = function() {};
for (const key in new Animal()) {
console.log("key", key);
}
Dies erzeugt in Knoten 6.11.0,
key speaklouder
Warum ist das so? Ich dachte, die Klassensyntax ist nur Zucker? Ich würde erwarten, dass die Funktion auch als Attribut aufgeführt wird.
Mögliche Duplikat https://stackoverflow.com/questions/30881632/es6-iterate-over-class-methods - ES6 Methoden sind nicht zählbare –
@ user2311517 Ich habe keine konkrete Dokumentation gefunden, aber nach meinem Verständnis sind Methoden der Klasse nicht aufzählbar. Sie können ** [hier] (https://jsfiddle.net/9oo5u457/) ** überprüfen. Sie können sich auch auf ** [Spezifikationen] beziehen (http://www.ecma-international.org/ecma-262/6.0/#sec-functioninitialize) ** – Rajesh