日期:2014-05-16  浏览次数:20354 次

一个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函数的返回值。
------解决方案--------------------
探讨

thx 2楼和三楼的小小。我是小牛

------解决方案--------------------
查查关于js闭包的看看就知道了http://zhidao.baidu.com/question/317091269.html
------解决方案--------------------
这是js闭包啊
闭包规定返回的函数不能含有return语句
也就是说如果return f2(),就会是return return n,这样是不允许的
如果是return f2 就相当与返回一个函数,这个函数语法是return n.
闭包确实挺难理解的
建议楼主多看些教材多看些例子
我也是刚刚接触 共同加油。