JavaScript, wofür steht in function(e) das e?

5 Antworten

Hallo StiftausBlei,

JavaScript schon eine weile nicht mehr gemacht, sollte aber an sich eine Variable sein die dort als Parameter übergeben wird.

In dem Beispiel wird die Variable allerdings nicht initialisiert, befüllt oder ausgelesen. Komisches Beispiel

Ben

regex9  01.10.2022, 21:37

Die Variable wird vom Aufrufer befüllt. Dieser Prozess findet allerdings intern statt. Sobald das change-Event geworfen wird, wird es als Objekt an den verknüpften Handler (die anonyme Funktion oben) übergeben.

0

Wenn du nicht explizit einen Namen für das EventObjekt (welches vom Sender des Ereignisses übergeben wird) angibst, hat die Objektvariable einfach den Namen event. ansonsten ist das EventObjekt unter dem übergebenen Variablennamen Anprechbar.

Ein solches eObject liefert (abhängig von der Quelle) diverse auswertbare Informationen:

<!DOCTYPE html>
<html>
<body>
<p> check it:</p>
<input type="checkbox" id="myCheck" name="myCheck" value="Ich">
<label for="myCheck"> ich</label><br>
<p id="demo">

<script>
const element = document.getElementById("myCheck");
element.addEventListener("change", function() {
  for (var x in event){
    console.log(x +' = ' + event[x]);
    document.getElementById("demo").innerHTML += 'event.' + x +' =  ' + event[x] +'<br>'; // mal ohne  console
  }
})
</script>

</body>
</html>

ein Button ist da wesentlich interessanter (hier mal mit expliziter Eventvariabe) :

<!DOCTYPE html>
<html>
<body>
<button id="myBtn">Zeig was, was mein eventObjekt alles übergibt</button>
<p id="demo">
<script>
const element = document.getElementById("myBtn");
element.addEventListener("click", myFunction);

function myFunction(e) {
    for (var x in e){
        console.log(x +' =  ' + e[x]);
        document.getElementById("demo").innerHTML += 'e.' + x +' =  ' + e[x] +'<br>'; 
  }
}
</script>

</body>
</html>

e ist schlussendlich ein Funktionsparameter. Wenn dein Event aufgerufen wird, kannst du über e auf gewisse Details des Events zugreifen. Bei einem Tastenanschlag beispielsweise welche Taste gedrückt wurde, usw.

Wenn du diese Details nicht brauchst, kannst du das auch weglassen, korrekt.

Woher ich das weiß:Berufserfahrung – Informatiker Applikationsentwicklung