-1

Si (fonction foo() {}) est une expression due au 'contexte' comme "(Parenthèse)" sont un opérateur de regroupement et l'opérateur de regroupement ne peut contenir qu'une expression.Toutes les fonctions sont-elles à l'intérieur d'une expression IIFE?

Ce qui conduit à la question, pouvez-vous déclarer une fonction à l'intérieur d'un IIFE ou cela compterait toujours comme une expression de fonction?

Répondre

5

La fonction elle-même devient une expression si elle est placée entre parenthèses, car les parenthèses créent un contexte d'expression.

Ceci n'affecte en rien les déclarations ou les déclarations dans le corps de la fonction.

(function iife() { 
    function example() { 
      … 
    } 
    … 
}()); 

Ici, le littéral pour iife est une expression parce qu'elle est à l'intérieur (…()), mais example est une déclaration comme d'habitude, car il fait partie d'un corps de la fonction.