Maison >interface Web >js tutoriel >Explication détaillée de l'utilisation, des avantages et des inconvénients des fonctions anonymes en JavaScript (tutoriel graphique)

Explication détaillée de l'utilisation, des avantages et des inconvénients des fonctions anonymes en JavaScript (tutoriel graphique)

亚连
亚连original
2018-05-21 11:12:331582parcourir

Je vais maintenant vous apporter une explication détaillée de l'utilisation, des avantages et des inconvénients des fonctions anonymes en JavaScript. Permettez-moi de le partager avec vous maintenant et de le donner comme référence pour tout le monde.

Les fonctions anonymes peuvent garantir efficacement que Javascript est écrit sur la page sans polluer les variables globales.

C'est très efficace et élégant lors de l'ajout de Javascript à une page inconnue.

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 mot-clé de fonction (fonction) :

function fnMethodName(x){alert(x);}

Fonction littéraux :

var fnMethodName = function(x )(alert(x) ;}

Constructeur Function() :

var fnMethodName = new Function('x','alert(x) ;')

Les trois méthodes ci-dessus définissent la même fonction de méthode fnMethodName,

La première est la méthode la plus couramment utilisée, les deux dernières copient une fonction dans la variable fnMethodName et Cette fonction n'a pas de nom, c'est-à-dire un fonction anonyme.

En fait, de nombreuses langues ont des fonctions anonymes.

2. La différence entre le littéral de fonction et le constructeur Function()

Bien que le littéral de fonction soit une fonction anonyme, la syntaxe permet de spécifier un nom de fonction arbitraire et peut s'appeler lors de l'écriture d'une fonction récursive, mais sans utiliser le constructeur Function().

var f = function fact(x) { if (x < = 1) return 1; else return x*fact(x-1 };

Constructeur Function() Autorise création dynamique et compilation de code Javascript au moment de l'exécution. En cela, elle est similaire à la fonction globale eval().

Le constructeur Function() analyse le corps de la fonction et crée un nouvel objet fonction à chaque fois qu'il est exécuté. Par conséquent, l’efficacité de l’appel du constructeur Function() dans une boucle ou une fonction fréquemment exécutée est très faible. En revanche, les littéraux de fonction ne sont pas recompilés à chaque fois qu'ils sont rencontrés.

Lorsque vous créez une fonction à l'aide du constructeur Function(), elle ne suit pas la portée typique. Elle l'exécute toujours en tant que fonction de niveau supérieur.

var y = "global";

function constructFunction() { var y = "local"; return new Function("return y"); // Impossible d'obtenir les variables locales} alert ( constructFunction()()); // La sortie "globale" et la définition du mot-clé de fonction ont leurs propres caractéristiques et sont beaucoup plus difficiles à utiliser que le constructeur Function(),

donc cette technologie est généralement rarement utilisée.

L'expression littérale de la fonction et la définition du mot-clé de la fonction sont très proches.

Considérant la différence précédente, bien qu'il y ait des nouvelles selon lesquelles les fonctions anonymes littérales ont des bugs dans certains moteurs de webkit sous OS X 10.4.3,

Mais ce que nous appelons habituellement les fonctions anonymes font référence aux fonctions anonymes dans la forme de littéraux de fonction.

3. Mode code de la fonction anonyme

Mode erreur : cela ne peut pas fonctionner et le navigateur signalera une erreur de syntaxe.

function(){ alert(1); }();

Fonction littérale : déclarez d'abord un objet fonction, puis exécutez-le.

(function(){ alert(1); } ) ( );

Expression prioritaire :

( function(){ alert( 2 ); } ( ) );

void Operator:

void function(){ alert(3);Ces trois méthodes sont équivalentes, hedger wang préfère la 3ème option pour des raisons personnelles, mais dans les applications pratiques je vois et j'utilise la 1ère option.

4. Application de fonctions anonymes

La première phrase de "Un mode module de Javascript" est "Les variables globales sont le diable" " .

Avec le mot-clé var, les fonctions anonymes peuvent garantir efficacement que Javascript est écrit sur la page sans polluer les variables globales.

C'est très efficace et élégant lorsqu'on ajoute du Javascript à une page qui ne vous est pas très familière.

En fait, les fonctions anonymes sont largement utilisées dans YUI et ses paradigmes correspondants, et sont également largement utilisées dans d'autres bibliothèques Javascript.

Javascript est la pierre angulaire de la programmation fonctionnelle.

Pour plus de détails, veuillez consulter « Écrire un beau JavaScript à l'aide de techniques de programmation fonctionnelle » et « Guide de programmation JavaScript fonctionnel ».

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Explication détaillée du prototype de prototype Javascript (cours de base)

Explication détaillée du cookie JavaScript et exemple d'application simple (tutoriel texte photo)

Plusieurs façons de commenter du code en JavaScript (tutoriel texte)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn