摘要:闭包函数:闭包简单理解成"定义在一个函数内部的函数"。下面是一个标准的闭包函数,内部定义的函数可以读取外部函数中定义的变量 ,闭包函数须是在内部定义的函数,而不是在外部定义的。var test = 10; var f = (function (){&
闭包函数:闭包简单理解成"定义在一个函数内部的函数"。
下面是一个标准的闭包函数,内部定义的函数可以读取外部函数中定义的变量 ,闭包函数须是在内部定义的函数,而不是在外部定义的。
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
}