当前位置: 首页 > Web前端 > JavaScript

【JavaScript】Closure

时间:2023-03-27 12:02:22 JavaScript

闭包函数和函数内部可以访问的变量之和是多少?变量过了生命周期后,仍然可以访问闭包函数的形式作为返回值functiontest(){vara=1returnfunction(){console.log('a',a)}}varfn=test()vara=2fn()//1函数作为参数functiontest(fn){vara=1fn()}vara=2functionfn(){console.log('a',a)}applicationofclosure//循环分配问题//测试调用结束循环已经结束functiontest(){vararr=[]for(vari=0;i<5;i++){arr[i]=function(){console.log(i)}}returnarr}varres=test()res[0]()//5//解决//通过在每个循环中立即执行函数来传入i//functiontest(){vararr=[]for(vari=0;i<5;i++){arr[i]=(function(j){returnfunction(){console.log(j)}})(i)}returnarr}varres=test()res[0]()//0