Javascript Funktionen
Hallo, habe gerade mehrere schönen Javascripte per mail bekommen und frage mich gerade, was eigentlich folgendes in einem Javascript bewirkt:
mir ist nur die Syntax für Funktionen bekannt.
Ach ja, handelt sich übrigens um ein Javascript für den Windows Skript Host, falls das was ändert...
1
2
3
2
3
!function(r) {/*code*/} (this);
!function() {/*code*/} ();
var Variable = function() {/*code*/} ();
1
function() {/*code*/}
Ach ja, handelt sich übrigens um ein Javascript für den Windows Skript Host, falls das was ändert...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 297969
Url: https://administrator.de/forum/javascript-funktionen-297969.html
Ausgedruckt am: 04.04.2025 um 10:04 Uhr
5 Kommentare
Neuester Kommentar

Moin.
Hier wird der Funktion das aktuelle Objekt this übergeben welches dann im Funktions-Body als Variable r zur Verfügung steht, und das Ergebnis der Funktion wird dann durch das Ausrufezeichen "negiert".
Die zusätzlichen Klammern nach der Funktionsdefinition bewirken einfach nur das "direkte ausführen" dieser anonymen Funktionen ohne Namen.
Der Name der Funktion ist quasi die Funktionsdefinition selber also der Teil:
function() {/*code*/}
Ausgeführt wird sie dann durch das folgende Klammernpaar
!function() {/*code*/} ()
(Rückgabewert der Funktion negieren)(Anonyme Funktion) (Ausführen)
Gruß jodel32
Hier wird der Funktion das aktuelle Objekt this übergeben welches dann im Funktions-Body als Variable r zur Verfügung steht, und das Ergebnis der Funktion wird dann durch das Ausrufezeichen "negiert".
!function() {/*code*/} ();
Das gleiche wie oben nur ohne Parameterübergabe an die Function.var Variable = function() {/*code*/} ();
Hier wird das Ergebnis der Ausführung der Funktion der Variablen zugewiesen.Die zusätzlichen Klammern nach der Funktionsdefinition bewirken einfach nur das "direkte ausführen" dieser anonymen Funktionen ohne Namen.
Der Name der Funktion ist quasi die Funktionsdefinition selber also der Teil:
function() {/*code*/}
Ausgeführt wird sie dann durch das folgende Klammernpaar
!function() {/*code*/} ()
(Rückgabewert der Funktion negieren)(Anonyme Funktion) (Ausführen)
Gruß jodel32

Zitat von @agowa338:
Also das Ausrufezeichen am Zeilenanfang vor einer Funktion hat keine besondere Bedeutung (wenn der Wert nicht weiter verarbeitet wird).
Wie gesagt, das Ausrufezeichen negiert den Rückgabewert der anonymen Funktion( das was die Funktion als Ergebnis via Return zurückgibt)Also das Ausrufezeichen am Zeilenanfang vor einer Funktion hat keine besondere Bedeutung (wenn der Wert nicht weiter verarbeitet wird).
Z.B. Die Funktion gibt true zurück, dann wird daraus letztendlich false wegen dem Ausrufezeichen.

Es kommt drauf an was die Funktion zurückgibt...das könnte z.B. auch eine weitere Function sein., das kann ich hier aber leider nicht sehen.
Siehe dazu auch folgenden Artikel
http://stackoverflow.com/questions/7586870/in-javascript-what-is-the-ad ...
Siehe dazu auch folgenden Artikel
http://stackoverflow.com/questions/7586870/in-javascript-what-is-the-ad ...