JS 闭包(Closure)

参考阮一峰老师的JS 闭包

理解闭包前需要理解变量作用域、变量提升

JS作用域

先来看一下一道题目
  • 选项1
  • 选项2
  • 选项3
  • 选项4
  • 选项5
  • 选项6
/变量提升了,var item;var i;/ var item =document.querySelectorAll('li') for (var i=0;i

那如何让它依次打印,12345呢;

因为i是全局变量,所以首先需要把i变为局部变量;
for (var i=0;i

现在来说说闭包:

  function f1(){

    var n=999;

    function f2(){
      alert(n); 
    }

    return f2;

  }

  var result=f1();

  result(); // 999
这样就是一个闭包;
闭包的作用就是暴露局部变量;

芳芳理解闭包
闭包

你可能感兴趣的:(JS 闭包(Closure))