Ich habe eine abstrakte Klasse, die ein Verfahren aussetzt:Wie erreicht man 'this' in überschriebenen Methode?
public abstract class Foo {
public update(){
//do some stuff
}
}
Welche dieser Klasse erbt von:
public class Doo extends Foo {
public update(){
super.update();
const x = this.getValue(); //problem line
}
}
Jetzt, da update()
ausgesetzt ist, ist es in einem anderen Kontext ausgeführt wird, und so, dass this
auf der "Problem-Linie" verweist auf das aufrufende Objekt, ein Problem, das ich normalerweise lösen würde, indem update()
in der abstrakten Eltern als Pfeil-Methode zu deklarieren:
public class Foo {
public update =() => {
//call this all i want
}
}
Wenn ich dies jedoch tun, kann ich super()
nicht mehr aus der Kindklasse aufrufen. Gibt es eine Möglichkeit super.update()
anzurufen und die Kontrolle über this
zu behalten?
Gerade wenn du denkst, dass du von all den Übeln von VanillaJS weggekommen bist, '' '' kommt zurück, um dich zu verfolgen ... Danke, dann denke ich, dass ich mit einer weniger eleganten Lösung kommen werde. – jokulmorder
Einverstanden, ich bin irgendwie überrascht, dass dies nicht behoben wurde, wenn Klassen hinzugefügt wurden - ein Mechanismus, um dies automatisch an Klassenmethoden zu binden und trotzdem super Arbeit zu leisten. Ich bin mir nicht sicher, ob das Polyfilled sein kann, aber es muss irgendwann behoben werden. –