闭包定义

在JavaScript中,当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。简单说,闭包就是能够读取其他函数内部变量的函数。

闭包的作用:
1. 可以读取函数内部的变量
2. 让这些变量的值始终保持在内存中。 

闭包简单应用

例一:

function a() { 
     var i = 0; 
    function b() {
      console.log(++i);
   } 
   return b;
}                        
var c = a();        //执行完var c=a()后,变量c指向了函数b,再执行c()后就会显示i的值(为1)。
c();                //输出1

例二:

(function() { 
var i = 0; 
   return function(){
          console.log(++i);
      }
})()();                    //输出1

例三:

(function(i) { 
   return function(){
          console.log(++i);
      }
})(0)();                  //输出1

例四:

for (var i = 0; i < 3; i++) {
    setTimeout((function(i) {             
        return function() {
            console.log(i);
        };
    })(i), 2000);
    console.log(i+10);
}                      //输出 10 11 12 (隔两秒后)0 1 2

例五:

for (var i = 0; i < 3; i++) {
    setTimeout((function(i) {
        return function() {
            console.log(i);
        };
    })(i)(), 2000);
    console.log(i+10);
}                     //立即输出 0 10 1 11 2 12 ,(两秒后运行程序结束)

相关文章:

  • 2021-09-22
  • 2021-11-28
  • 2021-09-30
  • 2022-02-08
  • 2022-12-23
  • 2021-12-13
  • 2021-11-23
猜你喜欢
  • 2022-12-23
  • 2021-07-20
  • 2022-12-23
  • 2021-10-16
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案