[ Web Proxy ]
URL:
Viewing: https://fr.javascript.info/task/closure-variable-access [Back]  [Original]

Quelles variables sont disponibles ?
FR

Nous souhaitons rendre ce projet open source disponible pour les gens du monde entier.

Aidez-nous traduire le contenu de ce tutoriel dans votre langue!

    Rechercher sur Javascript.info:
    Rechercher dans le tutoriel:
    Light themeDark theme
    DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek
    retour au cours

    Quelles variables sont disponibles ?

    importance: 5

    La fonction makeWorker ci-dessous cre une autre fonction et la renvoie. Cette nouvelle fonction peut tre appele ailleurs.

    Aura-t-elle accs aux variables externes depuis son lieu de cration, ou depuis le lieu dinvocation, ou les deux ?

    function makeWorker() {
      let name = "Pete";
    
      return function() {
        alert(name);
      };
    }
    
    let name = "John";
    
    // crons une fonction
    let work = makeWorker();
    
    // appelons-la
    work(); // que va-t-elle afficher ?

    Quelle valeur va-t-elle afficher ? Pete ou John ?

    solution

    La rponse est : Pete.

    La fonction work() dans le code ci-dessous obtient name du lieu de son origine via la rfrence denvironnement lexical externe :

    []

    Donc, le rsultat est "Pete" ici.

    Mais sil ny avait pas de let name dans makeWorker(), alors la recherche irait lextrieur et prendrait la variable globale comme nous pouvons le voir dans la chane ci-dessus. Dans ce cas, le rsultat serait "John".


    Web Proxy Viewer  |  New URL  |  Original Page