Czytam poprzez informacje na Babel.js's documentation klasy ES6 i zauważył, że mówi, że obiekty mogą teraz mieć dynamiczne nazwy własności:Czy w klasie istnieje wiele nazw dynamicznych metod?
var obj = {
...
// Computed (dynamic) property names
[ "prop_" + (() => 42)() ]: 42
};
Wydaje się, że wskazane byłoby w klasach, jak również. Czy to możliwe, aby zrobić coś podobnego w klasie ES6 bez robią to w konstruktorze, czyli:
class Foo {
[ "read" + (...)(['format1', 'format2']) ] {
// my format reading function
}
}
zamiast robić coś takiego w konstruktorze:
class Foo {
constructor(opts) {
let formats = ['format1', 'format2'];
let self = this;
formats.forEach(function(format) {
self["read" + format] = function() {
// my format reading function
}
})
}
}
Innymi słowy, chcę aby móc pobrać tablicę, na przykład ['format1', 'format2']
i utworzyć dwie metody, readformat1
i , w klasie dynamicznie, bez korzystania z konstruktora. czy to możliwe?
"ale mam nadzieję, że to zrozumiałe" - to nie jest: -S – zerkms
ahh zmieniłem go, aby użyć składni 'function' zamiast składni' => ', więc teraz powinien mieć więcej sensu. – josh
Po prostu dodaj je dynamicznie do prototypu, jak zwykle. – Bergi