Mit jQuery $(this) mit ES6 Pfeil-Funktionen (lexikalische dieser Bindung)

Verwendung von ES6 Pfeil-Funktionen, mit lexikalischen this Bindung ist sehr gut.

Aber ich lief in ein Problem, einen Augenblick vor dem Einsatz mit einem typischen jQuery-click-Bindung:

class Game {
  foo() {
    self = this;
    this._pads.on('click', function() {
      if (self.go) { $(this).addClass('active'); }
    });
  }
}

Mit einem Pfeil-Funktion statt:

class Game {
  foo() {
    this._pads.on('click', () => {
      if (this.go) { $(this).addClass('active'); }
    });
  }
}

Dann $(this) umgewandelt wird, ES5 (self = this) Verschluss.

Ist ein Weg, um Traceur ignorieren "$(this)" für die lexikalische Bindung?

Falls eine der Antworten unter beantwortet Ihre Frage, vergessen Sie nicht, markieren Sie es als akzeptiert. Wenn nicht, vielleicht könnten Sie klären, was Sie sonst noch wissen müssen?
das scheint ein perfektes Beispiel dafür, nicht zu verwenden wenn ein Pfeil Funktion seit .on() hat in der Tat eine this Wert nützlich für Sie. Für mich ist es viel klarer mit this bezogen auf das Ereignisziel, als zum bestehen der Veranstaltung und finden Sie das Ziel manuell. Ich habe noch nicht viel gespielt mit Pfeil-Funktionen, aber es scheint, wie es wäre verwirrend hin und her zu gehen mit anonymen Funktionen.

InformationsquelleAutor JRodl3r | 2014-12-27

Schreibe einen Kommentar