Ben Alman présente un argument intéressant sur le généralement l'utilisation de la terminologie de ce "modèle".
Son blog, c'est ici (http://benalman.com/news/2010/11/immediately-invoked-function-expression/).
Si son post est trop long pour vous, voici mon résumé (je recommande toujours la lecture comme ce résumé laisse beaucoup):
Si vous voulez un nom de fonction à l'autonomie de l'exécution/l'invoque, qui devrait ressembler à ceci:
// Hello, my name is "foo". I am a named function.
// When I am invoked I invoke my self when I am invoked.
function foo(){
foo();
}
Si vous voulez une fonction anonyme pour être autonomes, de l'exécution/l'invocation, il devrait ressembler à ceci:
// Hello, I have no name...
// (though I am assigned to the variable "foo" it's not who I am).
// When I am invoked I invoke my self when I am invoked.
// In ECMAScript 5 I no longer work. :-(
var foo = function(){
arguments.callee();
};
Si vous voulez une fonction anonyme pour être immédiatement exécuté/invoquée, il devrait ressembler à ceci:
// Hello, I have no name. I am immediately invoked.
// People sometimes call me a "self-invoking anonymous function"...
// even though I don't invoke myself.
// Ben Alman calls me an "Immediately-Invoked Function Expression"...
// or "iffy" for short.
(function(){ /...code.../ }());
Mes propres pensées sur le sujet:
Les autres réponses sont correctes; ce que vous me demandez est communément appelé un "auto invoquant la fonction anonyme."
Cependant, cette terminologie ne reflètent pas avec précision ce qui se passe réellement; "Immédiatement appelée à la Fonction d'Expression" (aka "douteuses", pour faire court) semble être un terme plus approprié.
Faits amusants pour impressionner vos amis:
Vous pouvez créer un Terrible comme ça, aussi:
!function(){
alert("immediately invoked!");
}();
ou
+function(){
alert("immediately invoked!");
}();
ou si vous êtes vraiment fou ( exemple ):
!1%-+~function(){
alert("immediately invoked!");
}();
dans la plupart des navigateurs (si pas tous, j'en suis pas sûr), et l'effet sera le même (facebook utilise l' !
version).