Ich habe einige Beiträge über Verschlüsse gelesen und dies überall gesehen, aber es gibt keine klare Erklärung, wie es funktioniert - jedes Mal wurde mir nur gesagt, dass ich es benutzen soll...:
// Create a new anonymous function, to use as a wrapper
(function(){
// The variable that would, normally, be global
var msg = "Thanks for visiting!";
// Binding a new function to a global object
window.onunload = function(){
// Which uses the 'hidden' variable
alert( msg );
};
// Close off the anonymous function and execute it
})();
Ok, ich sehe, dass wir eine neue anonyme Funktion erstellen und diese dann ausführen werden. Danach sollte dieser einfache Code also funktionieren (und das tut er auch):
(function (msg){alert(msg)})('SO');
Meine Frage ist: Welche Art von Magie geschieht hier? Das dachte ich, als ich schrieb:
(function (msg){alert(msg)})
dann würde eine neue unbenannte Funktion wie function ""(msg) ... erstellt werden.
aber warum funktioniert das dann nicht?
(function (msg){alert(msg)});
('SO');
Warum muss sie in der gleichen Zeile stehen?
Könnten Sie mir bitte einige Stellen nennen oder mir eine Erklärung geben?