Les fonctions anonymes peuvent s'assurer efficacement que JavaScript est écrit sur la page sans que les variables globales soient contaminées.
Cela fonctionne très bien et est beau lors de l'ajout de JavaScript à une page qui n'est pas très familière.
1. Qu'est-ce qu'une fonction anonyme?
Il existe généralement trois façons de définir une fonction en JavaScript:
Instruction de mots clés de fonction:
fonction fnMethodName (x) {alert (x);}
Literals de la fonction:
var fnMethodName = function (x) {alert (x);}
Function () Constructeur:
var fnMethodName = nouvelle fonction ('x', 'alert (x);')
Les trois méthodes ci-dessus définissent la même fonction de méthode fnMethodName.
Le premier est la méthode la plus couramment utilisée. Les deux derniers doivent copier une fonction dans la variable fnMethodName, et cette fonction n'a pas de nom, c'est-à-dire une fonction anonyme.
En fait, beaucoup de langues ont des fonctions anonymes.
2. La différence entre les littéraux de la fonction et les constructeurs de fonction ()
Bien que la fonction littérale soit une fonction anonyme, la syntaxe permet de spécifier avec n'importe quel nom de fonction. Il peut être appelé lui-même lors de l'écriture d'une fonction récursive, mais cela ne peut pas être fait à l'aide du constructeur fonction ().
var f = fonction fact (x) {if (x <= 1) return 1; else return x * fact (x-1); };
Le constructeur fonction () permet la création et la compilation dynamiques du code JavaScript à l'exécution. De cette façon, il est similaire à la fonction globale EVAL ().
Le constructeur fonction () analyse le corps de la fonction à chaque fois qu'il est exécuté et crée un nouvel objet de fonction. Par conséquent, l'efficacité de l'appel du constructeur fonction () dans une boucle ou une fonction fréquemment exécutée est très faible. Au contraire, les littéraux des fonctions ne sont pas recompilés à chaque fois qu'ils le rencontrent.
Lors de la création d'une fonction avec le constructeur fonction (), il ne suit pas la portée typique, il l'exécute toujours comme une fonction de niveau supérieur.
var y = "global";
function constructionFunction () {var y = "local"; return new function ("return y"); // Impossible d'obtenir une variable locale} alert (constructionFunction () ()); // La définition de mots clés "globale" et de fonction a leurs propres caractéristiques et sont beaucoup plus difficiles à utiliser que les constructeurs fonction ().
Cette technologie est donc généralement rarement utilisée.
La fonction d'expression littérale et la définition des mots clés de la fonction est très similaire.
Compte tenu de la différence précédente, bien qu'il y ait des messages disant que les fonctions anonymes littérales ont des bogues sous certains moteurs WebKit sous OS X 10.4.3,
Mais ce que nous appelons habituellement les fonctions anonymes se réfèrent à des fonctions anonymes qui utilisent la forme littérale de fonction.
3. Mode de code des fonctions anonymes
Mode d'erreur: il ne peut pas fonctionner, le navigateur rapportera une erreur de syntaxe.
function () {alert (1); } ();
Literals de fonction: Déclarez d'abord un objet de fonction, puis exécutez-le.
(function () {alert (1);}) ();
Expression préférentielle:
(function () {alert (2);} ());
opérateur vide:
void function () {alert (3); } () sont les mêmes. Hedger Wang préfère le troisième type pour des raisons personnelles, tandis que dans les applications réelles, je vois et utilise le premier type.
4. Application des fonctions anonymes
La première phrase dans "un modèle de module de JavaScript" est "les variables globales sont le diable".
Avec le mot clé VAR, les fonctions anonymes peuvent s'assurer efficacement que JavaScript est écrit sur la page sans provoquer de la pollution aux variables globales.
Cela fonctionne très bien et est beau lors de l'ajout de JavaScript à une page qui n'est pas très familière.
En fait, YUI et ses exemples correspondants utilisent de nombreuses fonctions anonymes, et d'autres bibliothèques JavaScript en utilisent également beaucoup.
La pierre angulaire de la programmation fonctionnelle en JavaScript.
Pour plus de détails, veuillez consulter "Écrire Beautiful JavaScript avec une technologie de programmation fonctionnelle" et "Guide de la programmation JavaScript fonctionnelle".
L'explication détaillée ci-dessus de l'utilisation et des avantages et des inconvénients des fonctions anonymes en JavaScript est tout le contenu que je partage avec vous. J'espère que vous pourrez vous faire référence et j'espère que vous pourrez soutenir Wulin.com plus.