javascript - Fermetures, fermetures, fermetures, je ne comprends toujours pas les fermetures
高洛峰
高洛峰 2017-05-19 10:14:40
0
5
693

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 ?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(5)
给我你的怀抱

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

phpcn_u1582

Recommandez un article sur les fermetures et comprenez les fermetures grâce aux outils de développement Chrome.

phpcn_u1582

Peu importe le nombre de questions que vous posez, faites simplement le projet et vous comprendrez en le faisant.

phpcn_u1582

"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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal