JavaScript闭包

作者: nomooo | 来源:发表于2019-03-23 20:28 被阅读8次

    闭包
    函数A中有一个函数B,函数B中可以访问函数A中的变量或者数据,此时形成闭包

    • 闭包的模式
      函数模式(里面的返回作为返回值),对象模式(里面的对象作为返回值)
    • 闭包的作用:
      缓存数据(是优点也是缺点)

    举个🌰----函数模式的闭包

        function f1() {
          var num = 10;
          return function () {
            console.log(num);
          }
        }
        var ff=f1();
        ff();//10
    

    再举个🌰----对象模式的闭包

        function f3() {
          return {
            age:100,
            getAge:function () {
              console.log(this.age);
            }
          }
        }
    
       var obj= f3();
        obj.getAge();//100
    

    闭包的作用缓存数据;只要是想把数据保存起来,就把这个数据放在闭包中(就是在外层函数和里层函数的中间)
    正因为闭包的出现缓存了数据,那么函数中的变量就没有得到及时的释放

        function f1() {
          var num = 10;//局部变量----函数使用后应该释放,但是闭包的情况,该变量的值没有释放,延长作用域了.
          return function () {
            return num++;
          }
        }
        var ff=f1();
        console.log(ff());//10
        console.log(ff());//11
        console.log(ff());//12
        console.log(ff());//13
    

    相关文章

      网友评论

        本文标题:JavaScript闭包

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