Ich habe eine Basis class
definiert als object literal
, mit Methoden im Konstruktor Bereich definiert. Wie folgt aus:So erweitern Sie eine Objektliteralklasse mit Ecmascript 6 Klassen
var NodeMappingAbstract = function NodeMappingAbstract() {
this.mapToContent = function (obj) {
throw new Error('Not implemented');
};
this.getInfo = function (data) {
throw new Error('Not implemented');
};
this.normalizeUri = function normalizeUri(uri) {
return uriNormalizer.normalize(uri);
};
};
Wie erweitere ich die NodeMappingAbstract
mit ES6 class
Syntax? Ich versuchte extends
und super()
mit:
class SomeMapping extends NodeMappingAbstract{
constructor(){
super();
}
mapToContent(rawElement) {
console.warn('mapContent called');
return rawElement;
}
}
Aber wenn ich es instanziiert und rufen mapToContent
wie folgt aus:
let m = new SomeMapping();
m.mapToContent();
ich Error: Not implemented
, die die Umsetzung der NodeMappingAbstract
Mittel verwendet.
sehe ich nicht in Ihrem Code wörtliche Objekt? – Bergi
@Bergi Mit 'object literal' habe ich gemeint, wie' NodeMappingAbstract' Methoden definiert (als Instanzeigenschaften). Gibt es einen besseren Weg, dieses Muster zu nennen? –
Es heißt eine "Konstruktorfunktion mit privilegierten Methoden". Oder nur "instanzspezifische Methoden" (spielt eigentlich keine Rolle, wo sie erstellt werden). – Bergi