闭包就这么简单

先撤点题外话,最开始接触这个专业术语,我首先联想到的是女孩子们口中常常提到的“闭口”,一种无法突破表皮最外层、长时间被圈禁在表皮下的痘痘胚胎,大致这么理解吧。其实,这个客观世界里的小东西确实和计算机语言中的闭口有那么几分相似,首先,内部;其次,封闭。

那么什么是闭包? 闭包就是定义在 一个函数 内部 的 函数。

举个例子:

function init(){

    var name ='ah';         //init作为父函数,变量name是一个被init创建的局部变量
    
    function useName(){        //useName()作为内部函数,就是一个闭包

       console.log(name);        //  使用了父函数中声明的变量
    }
    
    useName();
    

}

init();

如果内部函数useName()引用了位于外部函数的变量name,

当外部函数调用完毕后,这些变量在内存中不会被 释放,因为闭包useName()需要它们.

匿名函数(anonymous function)本身就是一个闭包,所有嵌套在function中的function都是一个强大的闭包。

简述闭包的用途:一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中,避开garbage collection的扼杀。

再来看看官方回答:闭包是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。(这句话是copy,表示自己也不想看,因为看不懂啊)我还是循序渐进,从简单易懂开始了解它吧,后续会跟进,毕竟闭包这个东西还有许多知识值得大家细细琢磨。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值