Maison >interface Web >js tutoriel >Qu'est-ce qu'une fonction anonyme en JavaScript ?

Qu'est-ce qu'une fonction anonyme en JavaScript ?

php中世界最好的语言
php中世界最好的语言avant
2018-04-28 11:21:324134parcourir

Cet article vous présentera ce que sont les fonctions anonymes en JavaScript. J'espère qu'après avoir lu cet article, vous aurez une certaine compréhension du concept et de l'utilisation des fonctions anonymes en JavaScript.

Qu'est-ce qu'une fonction anonyme en JavaScript ?

Qu'est-ce qu'une fonction anonyme en JavaScript ?

Lors des entretiens préliminaires, les enquêteurs demanderont essentiellement ce qu'est une fonction anonyme et ce qu'est une fonction de clôture.

Cet article parlera d'abord de ce que sont les fonctions anonymes.

Comme son nom l'indique, une fonction anonyme est une fonction sans nom. Habituellement, les fonctions que nous écrivons sont comme ceci :

function do(){
  // 执行代码  
};
// 调用
do();

Cette façon d'écrire consiste à définir une fonction nommée do. et pass Le nom de la fonction est appelé.

Que serait-ce sans nom ?

function () {
   // 执行代码   
 };

Cette façon d'écrire signalera une erreur lors de la compilation :

Uncaught SyntaxError: Unexpected token (

Pourquoi ? Il s'avère que lorsque le navigateur effectue une analyse syntaxique, il constate que cette fonction ne peut pas du tout être exécutée.

Alors pourquoi avons-nous besoin de fonctions anonymes ? S'il existe une autre méthode de codage dans un langage de programmation, alors cette méthode de codage fonctionnera certainement normalement. Alors, comment exécuter la fonction anonyme ? Regardez l'exemple suivant :

var do = function () {  // 执行代码  }do();

Tout le monde doit connaître ce genre de fonction. En fait, cette façon d'écrire consiste à copier la fonction anonyme dans la variable do, puis à exécuter la fonction via le nom de la variable. .

(function(){   // 执行代码 
  console.log("打印成功");
})();

Que signifie le code ci-dessus ?

Vous pouvez d'abord diviser le code ci-dessus en plusieurs parties :

La première partie est la fonction anonyme entre parenthèses, la deuxième partie est la fonction anonyme entre parenthèses et la troisième partie avec Les parenthèses utilisées à la fin de l'exécution.

La fonction anonyme entre parenthèses peut être considérée comme traitant la fonction anonyme comme une variable, puis l'exécutant entre parenthèses.

(function () {
   // 执行代码 
})();

// 相当于
var do = function() {
   // 执行代码  
};

do();

En fait, la méthode d'écriture de fonction anonyme ci-dessus est utilisée dans de nombreux endroits. Ce type est également appelé fonction auto-exécutable. Certaines boîtes à outils telles que JQuery utiliseront cette méthode d'écriture. -exécuter des fonctions ? Quels sont les avantages ?

// 定义一个全局变量a
var a = 1;

(function() {
  // 在自执行函数中也创建一个变量a
  var a = 2;
   console.log(a);  // 2
})();

console.log(a); // 1

Vous pouvez voir que le nombre imprimé dans la fonction auto-exécutable est 2, tandis que le nombre imprimé dans la fonction auto-exécutable est 1

Pourquoi est-ce ? ?

Comme il y a un nom dans le programme appelé scope, la portée de l'environnement global est appelée portée globale, la portée dans la fonction est appelée portée de fonction et la portée est hiérarchique, portée interne. dans la portée externe est accessible dans le domaine, mais les variables dans la portée interne ne sont pas accessibles dans la portée externe.

Lors de l'accès à une variable dans une portée interne, il recherchera d'abord dans la portée où elle se trouve. Si elle ne peut pas être trouvée, elle recherchera dans la portée de niveau supérieur. S'il ne la trouve pas, elle la recherchera. cherchera encore plus haut pour trouver la portée globale. Cette relation couche par couche est comme une chaîne, c'est pourquoi on l'appelle une chaîne de portée.

Regardez à nouveau le code ci-dessus : dans la fonction auto-exécutable, la fonction console.log accède à la variable a. Elle recherche d'abord dans sa propre portée et trouve la variable a, donc la valeur de a est affichée. 2; l'environnement global La fonction console.log in accède également à la variable a Étant donné que la portée externe ne peut pas accéder à la portée interne, la variable a accessible dans l'environnement global ne peut être recherchée que dans l'environnement de fonction global, donc la valeur de a est affiché comme 1 ;

Résumé : L'avantage d'une fonction auto-exécutable est de garantir que les variables de la fonction auto-exécutable ne seront pas contaminées par d'autres environnements.

Cet article provient de la rubrique tutoriel js, bienvenue pour apprendre !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer