function f1(){
var n=999;
nAdd=function(){n+=1}
var f2=function (){
alert(n+"ha");
}
return f2;
}
var result=f1();
result(); // 999
nAdd();
result(); // 1000
不理解 f1() 里面的 return f2 到底返回的是什么东西,换成 return f2() 结果不一样
var n=999;
nAdd=function(){n+=1}
var f2=function (){
alert(n+"ha");
}
return f2;
}
var result=f1();
result(); // 999
nAdd();
result(); // 1000
不理解 f1() 里面的 return f2 到底返回的是什么东西,换成 return f2() 结果不一样
f2()返回执行,如果是返回f2的话就是饭后后面那个方法,简单说就是后面那段字符串,楼主在看闭包吧????
所以return f2就和return a retunr b一样 可以由定义的变量来接受
至于return f2()则是返回执行f2后由f2返回的值 你的f2里没return返回值 所以undefined
result(); // 999
nAdd();
result(); // 1000 返回的是这两个答案?我看了不对,我也测试了,果然不对。999ha 1000ha