Maison > interface Web > js tutoriel > Série avancée JavaScript - déclarations et expressions de fonctions

Série avancée JavaScript - déclarations et expressions de fonctions

黄舟
Libérer: 2017-02-08 10:00:36
original
1195 Les gens l'ont consulté
  • Déclaration de fonction

  • Expression d'affectation de fonction

  • Expression d'affectation de fonction nommée


Les fonctions sont des objets de première classe en JavaScript, ce qui signifie qu'elles peuvent être transmises comme n'importe quelle autre valeur. Un usage courant consiste à transmettre une fonction anonyme en tant que fonction de rappel dans une fonction asynchrone.

Déclaration de fonction

function foo() {}
Copier après la connexion

La méthode ci-dessus sera analysée (histée) avant l'exécution, elle existe donc n'importe où dans le contexte actuel, même si elle est appelée au-dessus du corps de définition de la fonction C'est vrai aussi.

foo(); // 正常运行,因为foo在代码运行前已经被创建
function foo() {
Copier après la connexion

Expression d'affectation de fonction

var foo = function() {};
Copier après la connexion

Cet exemple attribue une fonction anonyme à la variable foo.

foo; // 'undefined'
foo(); // 出错:TypeError
var foo = function() {};
Copier après la connexion

Puisque var définit une instruction de déclaration, la variable foo est analysée avant l'exécution du code, donc la variable foo a déjà été définie lors de l'exécution du code.

Mais comme l'instruction d'affectation n'est exécutée qu'au moment de l'exécution, la valeur de foo est par défaut indéfinie avant que le code correspondant ne soit exécuté.

Expression d'affectation d'une fonction nommée

Un autre cas particulier consiste à attribuer la fonction nommée à une variable.

var foo = function bar() {
    bar(); // 正常运行
}
bar(); // 出错:ReferenceError
Copier après la connexion

bar est invisible en dehors de la déclaration de fonction, car nous avons attribué la fonction à foo cependant, elle est toujours visible à l'intérieur de bar ; Cela est dû au traitement de dénomination de JavaScript. Les noms de fonctions sont toujours visibles dans les fonctions.

Remarque : dans les navigateurs IE8 et inférieurs, bar est également visible en externe. Cela est dû au fait que le navigateur analyse de manière incorrecte l'expression d'affectation de fonction nommée et l'analyse en deux fonctions foo et bar


.

Ce qui précède est le contenu de la série avancée JavaScript - déclarations et expressions de fonctions. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.sbmmt.com) !


Étiquettes associées:
source:php.cn
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