Maison > interface Web > js tutoriel > le corps du texte

Expliquez ce que sont les fonctions anonymes en Javascript

青灯夜游
Libérer: 2018-10-12 15:56:45
avant
5313 Les gens l'ont consulté

Cet article vous présentera ce que sont les fonctions anonymes en Javascript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Analyse :

1. La fonction dite anonyme, comprise littéralement, est une fonction sans nom que JS utilise () à la place (Notez qu'il s'agit des parenthèses )

2. Formulaire de définition :

function (){
    //to add codes that you want to add
}
Copier après la connexion
3. Fonction de la fonction anonyme

(1) Par rapport à la fonction de fermeture, le plus grand effet n'est pas pour polluer la situation globale Une fois l'objet exécuté, le GC récupère automatiquement la mémoire. C'est la différence essentielle avec la fonction de fermeture. Une caractéristique majeure de la fonction de fermeture est la suivante :

les variables résident en mémoire et ne sont libérées que lorsque le navigateur est fermé.

function f1(){
    var n=999;
    nAdd=function(){n+=1}
    function f2(){
      alert(n);
    }
    return f2;
  }
  var result=f1();
  result(); // 999
  nAdd();
  result(); // 1000
Copier après la connexion
Dans le code ci-dessus, le résultat est en fait la fonction de fermeture f2. Il a été exécuté deux fois, la première fois, la valeur était de 999, la deuxième fois, la valeur était de 1 000. Cela prouve que la variable locale n dans la fonction f1 est toujours stockée en mémoire et n'est pas automatiquement effacée après l'appel de f1.

Pourquoi cela se produit-il ? La raison en est que f1 est la fonction parent de f2 et que f2 est affecté à une variable globale, ce qui fait que f2 est toujours en mémoire, et l'existence de f2 dépend de f1, donc f1 est toujours en mémoire et ne sera pas supprimé. une fois l'appel terminé, recyclé par le mécanisme de récupération de place (garbage collection).

Une autre chose à noter dans ce code est la ligne "nAdd=function(){n+=1}". Tout d'abord, le mot-clé var n'est pas utilisé avant nAdd, donc nAdd est plutôt une variable globale. que les variables locales. Deuxièmement, la valeur de nAdd est une fonction anonyme, et cette

fonction anonyme elle-même est également une fermeture, donc nAdd est équivalent à un setter, qui peut opérer sur des variables locales à l'intérieur de la fonction en dehors de la fonction.

(2) Par rapport aux fonctions générales, la précompilation n'est pas effectuée.

function fuc() {
    fuc1(); //foo被提到了作用域的最前面, 于是这里可以正常调用foo函数
    fuc2(); //这里会报错bar是个undefined
    function fuc1() {alert("foo()") }
    var fuc2 = function () { alert("bar")};
}
Copier après la connexion
Code :

Plusieurs expressions de fonctions anonymes :

Mode 1 : Fonction Littérale

Déclarez d'abord la fonction objet puis exécutez.

(function(){ 
// insert code here 
})();
Copier après la connexion
Mode 2 : Expression prioritaire

Puisque JavaScript exécute les expressions dans l'ordre de l'intérieur vers l'extérieur, les parenthèses sont utilisées pour forcer l'exécution des fonctions déclarées.

(function(){ 
// insert code here 
}());
Copier après la connexion
Mode 3 : Opérateur Void (Opérateur Void)

Utilisez l'opérateur Void pour exécuter un seul opérande.

void function(){ 
// insert code here 
}();
Copier après la connexion
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun. Pour plus de didacticiels connexes, veuillez visiter le

Tutoriel vidéo JavaScript !

Recommandations associées :

Tutoriel graphique JavaScript

Manuel en ligne JavaScript

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!