2011-09-11 5 views
1

Possible en double:
How do JavaScript closures work?Comment fonctionnent les fermetures?

function add(num){ 
    return function(num1){     
      return function(num2){      
       return num + num1 + num2; 
     }; 
    }; 
} 

var add5 = add(7)((7))((7)); 
console.log(add5); 

J'ai expérimenté un peu avec JavaScript parce que je suis en train de comprendre comment fonctionnent les fermetures.

Mais j'ai essayé ce

var add5 = add(7)((7))((7)); 
console.log(add5); //result is 21 

La façon dont je le vois, sont une sorte de fermeture de pointeurs vers la fonction extérieure ou sa fonction de parent?

+0

l'environnement pour la fermeture est une étendue de l'environnement d'emballage – galchen

+0

Vous pouvez lire le [wiki tag] (http://stackoverflow.com/tags/closures/info) pour des informations utiles. –

Répondre

2

La fermeture est la portée de la fonction externe, à laquelle les fonctions internes ont accès, même si l'exécution de la fonction externe prend fin. La façon dont il est implémenté dépend de l'interpréteur JS.

Voici docs de MDN: https://developer.mozilla.org/en/JavaScript/Guide/Closures

Questions connexes