recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Fermetures, fermetures, fermetures, je ne comprends toujours pas les fermetures

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 ?

高洛峰高洛峰2833 Il y a quelques jours711

répondre à tous(5)je répondrai

  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:16:40

    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

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-19 10:16:40

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

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-19 10:16:40

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

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-19 10:16:40

    "Javascript You Don't Know" Lisez ce livre pour le comprendre plus profondément

    répondre
    0
  • 某草草

    某草草2017-05-19 10:16:40

    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

    répondre
    0
  • Annulerrépondre