undefinierte Variable hat einen Wert?!

Dann stimmt das ja doch. Wenn der Browser bei einer Mousebewegung dann die Funktion drag(e) aufruft, ruft er sich ja eigentlich als drag(window.event) auf, oder wie sehe ich das?
Nee, überschrieben wird da gar nichts.

Der Browser ruft die Funktion eben mit dem entsprechenden Event-Objekt auf. Punkt.

Wo ist da das Problem bzw. was gibt's da nicht zu verstehen?

Wie schon gesagt wurde wird/wurde window.event nur im IE verwendet. Evlt. lies dir doch mal den Link von Sven durch.

Gruß
 
Hi

ist e denn eine vordefinierte Variable oder was? Mein Problem ist, dass ich der/m Variable/Parameter keinen Wert zuweise, aber ich trotzdem auf die Eventeigenschaften draufzugreifen kann. Eigentlich ist es nur neugierde warum es funktioniert.
 
Hi

ist e denn eine vordefinierte Variable oder was? Mein Problem ist, dass ich der/m Variable/Parameter keinen Wert zuweise, aber ich trotzdem auf die Eventeigenschaften draufzugreifen kann. Eigentlich ist es nur neugierde warum es funktioniert.
Ich glaube du hast einfach noch nicht verstanden wie Funktionsaufrufe funktionieren.

Javascript:
function func(e) {
  alert(e);
}

func(5); // rufe func mit 5 als Argument auf, e wird innerhalb der Funktion an die 5 gebunden

var xyz = func;

xyz("hallo"); // rufe func mit Argument "hallo" auf
Gruß
 
Zuletzt bearbeitet:
Hi

ist e denn eine vordefinierte Variable oder was?

Das e kann irgendein Variablenname sein, es dient nur dazu, dass du es in der Funktion über einen Namen ansprechen kannst.

Folgendes:
Code:
function drag(mausbewegungsereignis){
  alert(mausbewegungsereignis);
}
window.onmousemove = drag;
funktioniert genauso.
Eine etwaige gleichnamige globale Variable wird dadurch auch nicht überschrieben.
 
Hi

Also bei mir ist der Groschen immer noch nicht gefallen. Da ich auch in anderen Sprachen programmiere, ist mir ein Funktionsaufruf durchaus bewusst, nur js bin ich eben nicht ganz so fit.
Also, soweit ich weiß, muss man in javascript nicht alle Parameter setzten, und kann sogar mehr setzen als angegeben. Aber wenn ich gar nichts angebe, woher kommt denn der "Wert" für mein e?
Code:
function foo(bar){
  alert(bar);
}
foo("hallo"); // für den Parameter bar wird Hallo eingesetzt => gibt hallo aus
var x = 15;
foo(x); //für den Parameter bar wird die Variable x eingesetzt => gibt 15 aus
window.onmousemove = foo; //Es wird nichts für bar eingesetzt => gibt [Object Mouse Event] aus
Ist meine Frage jetzt vielleicht deutlicher geworden. Wie teilt der Browser der Funktion denn jetzt mit, das ein Event-Objekt für bar eingesetzt wird
(Ich weiß eingesetzt ist nicht das treffende Wort, aber um diese Uhrzeit fällt mir grad nichts anderes ein)
 
Hi.
Also bei mir ist der Groschen immer noch nicht gefallen. Da ich auch in anderen Sprachen programmiere, ist mir ein Funktionsaufruf durchaus bewusst, nur js bin ich eben nicht ganz so fit.
Trotzdem hast du irgendwie immer noch nicht den Unterschied zwischen einem Funktionsaufruf und einer Zuweisung verstanden:
Javascript:
function fu(e) {
   ...
}

fu(55); // Funktionsaufruf

var x;

x = fu; // Zuweisung == kein Funktionsaufruf

Ist meine Frage jetzt vielleicht deutlicher geworden. Wie teilt der Browser der Funktion denn jetzt mit, das ein Event-Objekt für bar eingesetzt wird
Er ruft einfach die Funktion die du angegeben hast mit dem entsprechenden Objekt als Argument auf.

Gruß
 
Hi

ich stell mich hier wohl einfach zu blöd an :(
100% hab ichs nicht verstanden, aber js konnte ich eh noch nie so wirklich leiden :D
Danke an alle, die mir's etwas Näher gebracht haben :)
 
Zurück