被外部函数作为返回值返回的内部函数会保留外部函数的局部变量的特性叫做闭包。
在正常情况下,在外部函数执行完成后,作为外部函数的局部变量v和v2应该已经失效,因为闭包的特性存在,innerMethod1、innerMethod2这两个方法仍然可以访问外部方法的局部变量。
代码如下,欢迎指点 :wink: 。
在正常情况下,在外部函数执行完成后,作为外部函数的局部变量v和v2应该已经失效,因为闭包的特性存在,innerMethod1、innerMethod2这两个方法仍然可以访问外部方法的局部变量。
代码如下,欢迎指点 :wink: 。
function outMethod(v){
var v2="=="
return function (){
alert(v2+v+v2);
}
}
var innerMethod1=outMethod("i am 1");
var innerMethod2=outMethod("i am 2");
innerMethod1();
innerMethod2();
本文通过一个具体的JavaScript示例,解释了闭包的概念及其工作原理。闭包允许内部函数即使在其外部函数执行完毕后,仍能访问到外部函数的局部变量。
502

被折叠的 条评论
为什么被折叠?



