Mit ES6 können spezielle Objekte erweitert werden. Es ist also möglich, von der Funktion zu erben. Ein solches Objekt kann als Funktion aufgerufen werden, aber wie kann ich die Logik für einen solchen Aufruf implementieren?
class Smth extends Function {
constructor (x) {
// What should be done here
super();
}
}
(new Smth(256))() // to get 256 at this call?
Jede Klassenmethode erhält über einen Verweis auf die Klasseninstanz this. Aber wenn es als Funktion aufgerufen wird, thisbezieht sich auf window. Wie kann ich den Verweis auf die Klasseninstanz erhalten, wenn sie als Funktion aufgerufen wird?
super(x)(dh weitergeben an Function)? Ich bin mir nicht sicher, ob Functiones tatsächlich erweitert werden kann.
Errorunter anderem Probleme bei der Erweiterung .
Functioneinfach ein Funktionskonstruktor ist. Die Implementierung der Funktion muss an den Konstruktor übergeben werden. Wenn Sie Smtheine Implementierung nicht akzeptieren möchten , müssen Sie sie im Konstruktor bereitstellen, d super('function implementation here'). H.
FunctionKonstruktor (Laufzeit), der sich stark von einem Funktionsausdruck (Syntax) unterscheidet.