lese ich durch die ES6 Klasse Informationen über Babel.js's documentation und bemerkte, dass er sagt, dass Objekte jetzt dynamische Eigenschaftsnamen haben:Ist es möglich, mehrere dynamische Methodennamen in einer Klasse zu haben?
var obj = {
...
// Computed (dynamic) property names
[ "prop_" + (() => 42)() ]: 42
};
Dies scheint, wie es auch in den Klassen nützlich sein würde. Ist es möglich, etwas ähnliches in einer ES6 Klasse zu tun, ohne es in einem Konstruktor zu tun, das heißt:
class Foo {
[ "read" + (...)(['format1', 'format2']) ] {
// my format reading function
}
}
eher als so etwas wie dies im Konstruktor tun:
class Foo {
constructor(opts) {
let formats = ['format1', 'format2'];
let self = this;
formats.forEach(function(format) {
self["read" + format] = function() {
// my format reading function
}
})
}
}
Mit anderen Worten, ich mag B. ['format1', 'format2']
nehmen und zwei Methoden, readformat1
und readformat2
, in der Klasse dynamisch erstellen, ohne den Konstruktor zu verwenden. Ist das möglich?
"aber hoffentlich ist es verständlich" --- es ist nicht: -S – zerkms
ahh ich änderte es, um die Funktionssyntax anstatt der '=>' Syntax zu verwenden, also sollte es jetzt mehr Sinn machen. – josh
Fügen Sie sie einfach wie immer dynamisch zum Prototyp hinzu. – Bergi