Ich habe eine addEventListener-Pfeilfunktion, bei der auf Knopfdruck die Farbe durch Umschalten einer Klasse geändert wird. das sieht aus wie folgt:es6 addeventlistener - Eigenschaft 'classList' von undefined kann nicht gelesen werden
var clickButton = document.getElementById("clicker");
clickButton.addEventListener("click", =>() {
this.classList.toggle("modified");
}, false);
In meiner Konsole:
Uncaught TypeError: Cannot read property 'classList' of undefined at HTMLButtonElement.
es interessant ist, dass dies zu einer Stand JS Umwandlungsfunktion wie unten:
var clickButton = document.getElementById("clicker");
clickButton.addEventListener("click", function() {
this.classList.toggle("modified");
});
funktioniert perfekt. Ich verstehe nicht, warum die Pfeilfunktion version classList undefiniert macht.
Wie funktioniert classList
in ES6 Pfeilfunktionen?
Warum schreibe es nicht als ' clickButton.classList.toggle' direkt, da Sie bereits den Verweis auf die Schaltfläche haben? – loganfsmyth
Sie können, aber ich wollte jetzt eine Q & A posten, dass ich weiß, 'this' funktioniert anders mit Pfeilfunktionen. – kawnah
Ah, ich habe nicht bemerkt, dass du deine eigene Frage beantwortet hast. Ihre Frage scheint irreführend zu sein, da Sie gefragt haben: "Wie funktioniert classList in ES6-Pfeilfunktionen?" Und die Antwort ist "genau so, wie Pfeile überall sonst funktionieren". Die Frage, die Sie beantwortet haben, lautet: "Warum funktioniert dieser Anruf in der Klassenliste nicht?" – loganfsmyth