En javascript, quand vous voulez l'utiliser:
(function(){
//Bunch of code...
})();
au cours de cette:
//Bunch of code...
En javascript, quand vous voulez l'utiliser:
(function(){
//Bunch of code...
})();
au cours de cette:
//Bunch of code...
Son tout sur la variable de portée. Les Variables déclarées dans l'en soi de l'exécution de la fonction sont, par défaut, uniquement disponible pour le code à l'intérieur de soi de l'exécution de la fonction. Cela permet de code à écrire sans se préoccuper de la manière dont les variables sont nommées dans d'autres blocs de code javascript.
Auto-invocation (aussi connu comme auto-invocation) est une fonction exécute immédiatement après son définition. C'est un modèle de base et sert de base pour de nombreux d'autres modèles de JavaScript développement.
Je suis une grande fan :) parce que:
- Il garde un code à un minimum
- Il met en place la séparation de comportement de présentation
- Il fournit un système de verrouillage qui empêche les conflits de noms
Énormément – (Pourquoi vous devez dire à son bon?)
- Il s'agit de la définition et de l'exécution d'une fonction tout à la fois.
- On pouvait avoir l'auto-exécution d'une fonction retourne une valeur et passer à la fonction en tant que paramètre à une autre fonction.
- C'est bon pour l'encapsulation.
- Il est également bon pour le bloc de portée.
- Oui, vous pouvez placer toutes vos .fichiers js dans une auto-exécution de la fonction et peuvent empêcher l'espace de noms global de la pollution. ;)
De plus ici.
Je ne peux pas croire à aucune des réponses mention implicite globals.
L' (function(){})()
construire ne protège pas contre l'implicite global, qui pour moi est le plus grand souci, voir http://yuiblog.com/blog/2006/06/01/global-domination/
Fondamentalement, le bloc fonction permet de s'assurer que tous les dépendants "les variables globales" vous avez définis sont confinés à votre programme, il ne vous protège pas contre la définition implicite globals. JSHint ou elle ce que vous voulez vraiment défendre contre.
La plus concise var App = {}
syntaxe fournit un niveau de protection similaire, et peut être enveloppé dans le bloc de fonction lors de sur "public" des pages. (voir Ember.js ou SproutCore pour des exemples du monde réel de bibliothèques qui utilisent cette construction)
Aussi loin que l' private
propriétés, ils sont un peu surfaite, sauf si vous êtes la création d'un cadre public ou à la bibliothèque, mais si vous avez besoin de les mettre en œuvre Douglas Crawford a quelques bonnes idées.
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.