美文网首页
什么是闭包

什么是闭包

作者: Devil兵 | 来源:发表于2019-07-12 22:45 被阅读0次

    什么是闭包?这就是闭包!简单吧。

    有权访问另一个函数作用域内变量的函数都是闭包。这里 couter 函数访问了构造函数 a 里面的变量 n,所以形成了一个闭包。 再来看一段代码:

    function a(){

      var n = 0;

      function couter(){

        n++;

        console.log(n);

      }

      return couter;

    }

    var c = a();

    c(); //控制台输出1

    c(); //控制台输出2

    看看是怎么执行的: var c = a(),这一句 a()返回的是函数 couter,那这句等同于 var c = couter; c(),这一句等同于 couter(); 注意,函数名只是一个标识(指向函数的指针),而()才是执行函数。 后面三句翻译过来就是: var c = couter; couter(); couter();,跟第一段代码有区别吗? 没有。

    相关文章

      网友评论

          本文标题:什么是闭包

          本文链接:https://www.haomeiwen.com/subject/caeukctx.html