闭包

闭包是阻止垃圾回收器将变量从内存中移除的方法,使得在创建变量的执行环境的外面能够访问到该变量。

闭包因保存函数而被创建。

另一种使用闭包的常见情况是,保存变量以便在ajax请求返回时使用。(当使用jQuery来发送ajax请求的方法,则this不再指向对象,它指向ajax请求对象。那么如何指向对象呢?使用闭包来营救!请记住,闭包由函数创建,该函数在当前执行环境中访问了某个变量,并将该函数保存给当前执行环境外的一个变量。在下面的例子中,通过把this保存给that,在函数中访问that,从而创造了一个闭包,当ajax请求返回时,会执行该函数。ajax请求是异步的,所以响应来自发送ajax请求的执行环境之外。)

var prison = {
    names:'mike',
    who:function () {
         var that = this;
         $.ajax({success:function () {
                 console.log(that.name);
                }
           });
     }
};
prison.who();   //outputs  'mike'

闭包就是一个函数,捕获作用域内的外部绑定,这些绑定是为之后使用(即使在该作用域已结束)而被定义的。例子:即捕获变量供以后使用。当一个闭包捕获这个变量,它(这个变量)在一定程度上还能继续存在。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值