atq

导航

 

闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

闭包的形成与变量的作用域以及变量的生存周期密切相关。

  1. 外部可以访问内部变量。
  2. 内部变量的生命周期延长。

例:

var closure = function(){
  var count = 0;
  return function(){
    count ++;
  }
}
closure(); // 1
closure(); // 2

 

例2:

function demo(){
  var result = [];
  for(var i = 0;i < 10;i++){
    result[i] = (function(num){
      return function(){
        console.info(num);
      }
    })(i);
  }
  return result;
}

var demoObj = demo();
for(var i = 0;i < 10;i++){
demoObj[i]();
}

posted on 2019-11-06 17:30  atq  阅读(129)  评论(0)    收藏  举报