闭包的简单理解

 

  闭包,是一个作用域.

 

  简单的讲,函数套函数,父函数里面的子函数,就是闭包.

 

  任何一个函数都是一个闭包.

    function a(){

      console.log('这个a函数,就是一个闭包.')

    }

 

  闭包的特性:

    1. 函数内部可以读取全局变量;

    2. 函数外部不能读取函数内部的变量.

      父函数不能读取子函数的变量.

      父函数读取子函数里面的变量,要使用return.

        function a(){

          var a1 = 1; // 私有变量

          function b(){

            var b = a1 + 1;

            console.log(b)

          }

          return b;

        }

        var s = a();

        s();

 

    则其实就是变量作用域.

 

  闭包的用途:

    1. 用来定义"私有方法"和"私有变量"

    这种私有方法和变量,在外部无法访问

      function obj(){

        var x = 1;

        function get(){

          console.log(x);

        }

        this.get = get;

      }

      obj.prototype = {

        a:function(){

          console.log('aaaa')

        }

      }

      var s = new obj();

      s.get();

 

      obj 是一个对象,同时也是一个函数,当添加了 prototype 的时候,它也是构造器,它有一个私有方法 get,用来访问它自己内部的变量 x.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值