一个js的问题,大家回答一下呀
JScript code
function f1(){
var n = 999;
nAdd = function(){
n++;
}
function f2(){
return n;
}
return f2;
}
请问这里下面的return f2 为什么不是return f2()
------解决方案--------------------
return f2是返回f2函数,return f2()返回的是f2函数的返回值。
------解决方案--------------------
------解决方案--------------------查查关于js闭包的看看就知道了http://zhidao.baidu.com/question/317091269.html
------解决方案--------------------这是js闭包啊
闭包规定返回的函数不能含有return语句
也就是说如果return f2(),就会是return return n,这样是不允许的
如果是return f2 就相当与返回一个函数,这个函数语法是return n.
闭包确实挺难理解的
建议楼主多看些教材多看些例子
我也是刚刚接触 共同加油。