Les développeurs JavaScript rencontrent souvent une pratique particulière où des fichiers .js entiers sont encapsulés dans des fonctions anonymes comme (function() { ... })(). Bien que cela puisse paraître déroutant, cette technique présente des avantages spécifiques, notamment pour l'espacement des noms et le contrôle de la visibilité des fonctions et des variables.
Les fonctions JavaScript peuvent être imbriquées, permettant des fonctions membres privées et /ou des variables dans le cadre de la fonction externe. Par exemple :
function outerFunction() { function innerFunction() { // Inner function with private visibility } }
Dans ce scénario, externalFunction est accessible globalement, mais innerFunction lui est privé.
Le wrapper de fonction anonyme sert un objectif similaire, créant effectivement une portée privée dans le fichier. Le code contenu dans l'emballage devient inaccessible au monde extérieur, empêchant ainsi une pollution à l'échelle mondiale. Cette technique peut être utile pour organiser le code en espaces de noms, permettant la création de bibliothèques ou de plugins personnalisés.
Par exemple :
var myPlugin = (function() { var private_var; function private_function() { // Private function } return { public_function1: function() { // Public function }, public_function2: function() { // Public function } }; })();
Dans ce cas, private_var et private_function sont privés dans le Espace de noms myPlugin, mais public_function1 et public_function2 sont accessibles depuis l'extérieur du wrapper.
Les parenthèses finales lors de l'auto-invocation de la fonction permettent de passer des arguments. Par exemple, lors de la création de plugins jQuery, les développeurs transmettent jQuery ou $:
(function(jQ) { ... code ... })(jQuery);
Cette technique redéfinit localement le paramètre global, offrant des avantages en termes de performances et facilitant la compression.
Les wrappers de fonctions anonymes en JavaScript sont un moyen d'assurer la confidentialité, l'organisation des espaces de noms et des performances améliorées. Ils offrent un moyen pratique d'encapsuler du code dans un fichier, permettant la création de composants et de bibliothèques réutilisables.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!