闭包函数:闭包简单理解成"定义在一个函数内部的函数"。

下面是一个标准的闭包函数,内部定义的函数可以读取外部函数中定义的变量  ,闭包函数须是在内部定义的函数,而不是在外部定义的。

    var test = 10;
    var f = (function (){ 
        var test = 20;
         return function (){ 
            alert("访问---"+test);//20
} })(); f();

 

变形1:

返回一个外部定义的函数,并执行这个外部函数foo

    var test = 10;
    var f = (function (){ 
        var test = 20;
        return foo;  //10
    })();

    f();
    
function foo(){
        alert('foo1:'+test);   //10
    }

 

变形2:

这个其实已经不是一个闭包,仅仅是一个函数调用,在自执行的函数里,调用了另一个函数foo,而foo是在外部定义的,是无法读取到内部函数里定义的局部变量的,所以,foo()调用时,读取的是外部定义的全局变量10

var test = 10;
 (function (){ 
    var test = 20;
    foo();   //10

    })();

function foo(){
        alert('foo1:'+test);   //10
    }

 

相关文章:

  • 2021-11-03
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2023-03-15
  • 2018-01-07
猜你喜欢
  • 2021-08-10
  • 2022-12-23
  • 2022-01-29
  • 2021-08-08
  • 2021-07-05
  • 2021-10-18
相关资源
相似解决方案