Je suis en train de lire quelques posts au sujet de fermetures et de voir ce truc dans tous les endroits, mais il n'y a pas d'explication comment cela fonctionne - juste à chaque fois je me dit à l'utiliser...:
// 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, je vois que nous allons créer de nouvelles fonction anonyme, et puis l'exécuter. Alors, après que ce simple code devrait fonctionner (et il le fait):
(function (msg){alert(msg)})('SO');
Ma question est: quel genre de magie viennent lieu ici? Je pensais que lorsque j'ai écrit:
(function (msg){alert(msg)})
puis nouvelle fonction sans nom sera créé comme la fonction ""(msg) ...
mais alors pourquoi cela ne fonctionne pas?
(function (msg){alert(msg)});
('SO');
Pourquoi il faut être dans la même ligne?
Pourrait s'il vous plaît m'indiquer le post ou me donner l'explication?