被外部函数作为返回值返回的内部函数会保留外部函数的局部变量的特性叫做闭包。
在正常情况下,在外部函数执行完成后,作为外部函数的局部变量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();