I haben eine Funktion in a ES6 class
:ES6 in Chrom - Babel Sourcemaps Pfeil und Funktionen lexikalischen Gültigkeitsbereich
class Test {
// Omitted code for brevity
loadEvents() {
$.get('/api/v1/events', (data) => {
this.actions.setEvents(data);
});
}
}
Babel transpiles dies zu einer anderen Form, und es erzeugt ein _this
Variable den lexikalischen Gültigkeitsbereich des steuern Pfeilfunktion.
var _this = this;
$.get('/api/v1/events', function (data) {
_this.actions.setEvents(data);
});
Wenn ich Debuggen des ES6 Klasse sourcemaps in Chrome und einen Haltepunkt auf der Linie setzen, wo ich this.actions.setEvents(data);
nenne ich bemerkt, dass Chrome nicht „re-map“ this
den ursprünglichen ES6 Code übereinstimmen, sondern this
zeigt auf den äußeren Funktionsumfang und ich muss _this
verwenden, wenn ich auf den lexikalischen Bereich der Pfeilfunktion zugreifen möchte, was völlig sinnlos ist. Wenn ich Quellkarten verwende, würde ich Chrome Dev erwarten. Werkzeuge, um den lexikalischen Umfang von this
wie in meinem ES6-Code zu erhalten.
Gibt es eine Möglichkeit, Chrome-Entwicklertools wie erwartet mit Quellkarten und Pfeilfunktionen zu arbeiten?
_ "dies deutet auf die äußere Funktion hin" _ - Es ist mir nicht klar, was Sie damit meinen. Ist der Wert von 'this' eine Funktion? _ "Ich muss _this verwenden, wenn ich auf den Pfeilfunktionsbereich zugreifen möchte" _ - Was haben '_this' und' this' mit dem Umfang einer Funktion zu tun? – zeroflagL