Gibt es eine Möglichkeit, die Klasse this
bei der Eingabe einer Klick-Funktion von einer Schaltfläche zu halten?Keeping Klasse beim Aufrufen der Schaltfläche Klick-Funktion
Zum Beispiel:
class MyClass extends FooClass{
constructor (obj) {
super (obj)
this.obj= obj;
$("#someButton").click(this.foo);
}
foo(){
this.obj; // undefined because this is now #someButton and not MyClass
}
Aber ich will this.obj
in foo()
zuzugreifen.
Das hat es getan. Gibt es einen Unterschied zwischen den beiden Ansätzen? Der zweite ruft nur die Funktion auf? Warum sollte '() => this.foo' dann nicht funktionieren? – shinzou
'bind' erstellt eine neue Funktion mit begrenztem Kontext, die ES5 ist, um den Kontext in Rückrufen zu halten. '() => blah' erstellt neue Pfeilfunktion und wurde in ES201Somthing eingeführt. Sie sind in einigen Aspekten unterschiedlich, aber in diesem Fall sollte "das gleiche" funktionieren. Https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions "Warum sollte nicht'() => this.foo' Arbeit dann? " '() => body' erstellt eine neue Pfeilfunktion' this.foo', die einfach auf 'foo' w/o call zugreift. Also brauchst du 'this.foo()' –