41 votes

Pourquoi cette fonction est-elle entourée de parenthèses, suivies de parenthèses ?

Je vois cela tout le temps dans les sources javascript mais je n'ai jamais vraiment découvert la vraie raison pour laquelle cette construction est utilisée. Pourquoi est-ce nécessaire ?

 (function() {

    //stuff

})();

Pourquoi est-ce écrit comme ça ? Pourquoi ne pas simplement utiliser stuff seul et non dans une fonction ?

EDIT : je sais que cela définit une fonction anonyme puis l'appelle, mais pourquoi ?

1voto

redsquare Points 47518

Il s'agit d'une "fonction auto-exécutable anonyme" ou d'une "expression de fonction immédiatement invoquée". Belle explication de Ben Alman ici .

J'utilise le modèle lors de la création d'espaces de noms

 var APP = {};

(function(context){



})(APP);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X