Fermeture Fermeture Je ne comprends toujours pas. Cherchez à expliquer.
var fwx = (function(){
var i = 0;
var a = 1;
var b = 2;
var c = function (m) {var a = m;
a = m;
console.log(i++);
// i = null;
};
var d = function () {
var v = a;
console.log("。。。。"+a);
console.log(i++);
console.log(this.i);
return v;
};
return {
i : i ,
a : a ,
c : c ,
d : d
}
})();
console.log(fwx.i+"+"+fwx.a,
fwx.d()+"+"+fwx.i,
fwx.d()+"+"+fwx.i,
fwx.c(111)+"+"+fwx.i,
fwx.d()+"+"+fwx.i,
fwx.d()+"+"+fwx.i,
fwx.d()+"+"+fwx.i,
fwx.a
);
1.Le domaine de fermeture dans la méthode c contient a et i
Alors, quelle est la différence entre a et fwx.a ?
2. Comment puis-je effacer les fermetures ?
La fermeture signifie qu'une fonction peut accéder aux variables dans la portée dans laquelle elle est déclarée. Selon cette fonctionnalité, une fonction peut être renvoyée dans la fonction. Grâce à cette fonction renvoyée, les variables de la fonction sont accessibles en dehors de la fonction ; Selon la chaîne de portée, lorsqu'une fonction accède à une variable, elle recherche d'abord dans sa propre portée. Sinon, elle recherche dans la portée de la fonction externe, et ainsi de suite, jusqu'à ce que la portée globale soit trouvée. dans la portée de la fonction c, a et fwx dans la fonction c a sont différents, et i est i dans fwx
Recommandez un article sur les fermetures et comprenez les fermetures grâce aux outils de développement Chrome.
Peu importe le nombre de questions que vous posez, faites simplement le projet et vous comprendrez en le faisant.
"Javascript You Don't Know" Lisez ce livre pour le comprendre plus profondément
J'ai tendance à être d'accord avec un dicton : le front-end doit se faire étape par étape, et on ne peut pas vaincre des monstres en sautant.
Vous devez avoir écrit du code et avoir vos propres idées, et vous le comprendrez mieux après l'avoir lu. Avant cela, lisez davantage et écrivez davantage, il n'y a pas d'autre moyen.
Je suis issu du C++ et j'étais confus lorsque je l'ai lu pour la première fois. Il m'a fallu plus d'un an pour le comprendre depuis le début.
http://user.qzone.qq.com/2084...
Ce qui précède est un article écrit par moi-même, combiné avec les réponses de Ruan Yifeng et du répondeur précédent sur Zhihu, ainsi que d'autres blogs sur Internet A journal de , j'espère qu'il vous sera utile