关于对闭包的了解

说到闭包,其实看了些许书,自以为明白了。在牛客网做有关闭包的题,才发现学得一塌糊涂。索性记录下来,好对自己的学习有个认识。


本文结合《javascript高级程序设计》(第三版)与《你不知道的javascript》中闭包的知识点。


  • 闭包,是指有权访问另一个函数作用域中的变量的函数。

        作用链机制会引起一个副作用,即闭包只能取得包含函数中任何变量的最后一个值。




通过闭包,可以解决上述问题

         
        
在循环过程中每次迭代都需要一个作用域,即IIEF会通过声明并立即执行一个函数来创建作用域






  • 当函数可以记住并访问所在的此法作用域,就产生的闭包,即使函数是在当前词法作用域之外执行。

           

          

          


          




           在定时器、事件监听器、Ajax请求、跨窗口通信、Web Workers或者任何其他的异步(或者同步)任务中。只要使用了回调函数,实际上就是在使用闭包!

   

          


          


           不知道为什么报错

         







实现函数 makeClosures,调用之后满足如下条件:

1、返回一个函数数组 result,长度与 arr 相同
2、运行 result 中第 i 个函数,即 result[i](),结果与 fn(arr[i]) 相同





     

     


                 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值