JavaScript, wie muss ich die Arrow-Funktion in diesem Kontext lesen?
Hallo Leute, ich habe hier ein Beispiel vor mir, das mich etwas verwirrt. Ich lerne gerade JavaScript und bin ehrlich gesagt bisher überhaupt kein Freund der Arrow-Funktion, weil ich die Schreibweise hässlich und unlesbar finde, aber da einige sie scheinbar gerne verwenden, muss ich sie mir wohl mal aneignen.
Was ich aus reiner Logik nicht nachvollziehbar finde: Wieso genau kommt nach => eine geöffnete geschweifte Klammer vor if?
Folgendes Beispiel:
function init() {
window.addEventListener("keydown", (userInteraction) => {
if (userInteraction.key !== undefined) {
console.log(userInteraction.key);
}
Ich würde das ohne Arrow-Funktion so machen:
function init() {
window.addEventListener(
"keydown", //Name des Events
userInteraction
);
if ( userInteraction.key !== undefined) {
console.log(userInteraction.key);
}
}
1 Antwort
Im Falle einer Arrow-Function, wird, wie der Name schon sagt eine Funktion übergeben. Demnach ist die Syntax auch relativ ähnlich zu einer gewöhnlichen Funktion, mit dem Unterschied, dass es keinen Namen gibt, weil es eine anonyme Funktion ist.
Eine alternative Schreibweise wäre (falls du dich damit besser anfreunden kannst):
function init() {
window.addEventListener("keydown", function (userInteraction) {
if (userInteraction.key !== undefined) {
console.log(userInteraction.key);
}
});
}
Du kannst übrigens auch eine Funktion definieren und diese dann als Parameter übergeben, falls du das übersichtlicher findest:
function init() {
var callback = function (userInteraction) {
if (userInteraction.key !== undefined) {
console.log(userInteraction.key);
}
};
window.addEventListener("keydown", callback);
}