Ich denke, ich verstehe die Bedeutung von not using ES6 classes, Bewertung der Zusammensetzung über Vererbung und Verwendung factory functions instead of prototype
(fühlen Sie sich frei, mich auf irgendwelche dieser Aussagen zu korrigieren, wenn Sie anderer Meinung sind).Wie konvertiere ich diese ES6-Klasse in eine Factory-Funktion?
Meine Frage ist, wie dieses Beispiel mit ES6-Klassen (und ES6-Karte) konvertiert werden, um eine Factory-Funktion zu verwenden.
class DefaultMap extends Map {
get(key, defaultValue) {
return this.has(key) ? super.get(key) : defaultValue;
}
}
Beispiel:
const defaultMap = new DefaultMap();
defaultMap.set('foo', 'bar');
console.log(defaultMap.has('foo')); // true
console.log(defaultMap.get('foo')); // bar
console.log(defaultMap.has('baz')); // false
console.log(defaultMap.get('baz', 'qux')); // qux
Eine Fabrik Funktion nicht das neue Schlüsselwort verwenden würde – JordanHendrix
Vererbung völlig angemessen, hier zu sein scheint, da 'DefaultMap' * ist -a * 'Karte'. –
Eigentlich ist dies ein schlechter Grund zu erben, OP fügt nur eine einfache Erweiterung zu Map hinzu. –