J'écris un guide de style JavaScript pour mon équipe, afin que nous puissions organiser et contribuer nos documents plus facilement. Mais j'ai touché une petite bosse, c'est là que ma question s'applique ...
Comment suis-je censé appeler une fonction JavaScript anonyme qui est appelée immédiatement. Je sais que je pourrais tout simplement l'appeler une "fonction anonyme", mais je voudrais souligner le fait qu'elle est appelée immédiatement.
Voici un exemple:
var MyVariable = (function(data){
return "another value"
})("some value");
console.log(MyVariable);
// "another value"
javascript
coding-style
terminology
silentBeep
la source
la source
Réponses:
Ils ont déjà un terme pour cela dans le monde Javascript. Elles sont appelées expressions de fonction immédiatement appelées (IIFE) .
Ce que c'est
Les fonctions IIFE ne reçoivent pas de nom. Au lieu de cela, ils sont exécutés une fois lorsque l'interprète les rencontre:
Les parenthèses finales après l'accolade fermante du bloc de code indiquent à l'interpréteur d'appeler immédiatement l'expression de fonction.
Si vous écrivez une déclaration de fonction, vous devez ajouter des opérateurs de regroupement ou des parenthèses entourant la fonction pour indiquer à l'interpréteur de traiter la fonction comme une expression qui peut être immédiatement invoquée:
Quand ils sont utilisés
Les IIFE sont utilisés pour le code qui n'a besoin d'être exécuté qu'une seule fois dans une tâche, plutôt que d'être appelé à plusieurs reprises.
la source
var area = ...
, vous n'avez pas besoin des parenthèses "wrapping" sur la fonction, car c'est déjà une expression de fonction du fait qu'elle se trouve sur le côté droit de la=
. Les parenthèses enveloppantes ne sont nécessaires que lorsque la fonction est écrite en tant que déclaration de fonction (c'est-à-dire sans le débutvar area = ...
).