function f1(){
var n = 999;
nAdd = function(){
n++;
}
function f2(){
return n;
}
return f2;
}
请问这里下面的return f2 为什么不是return f2()

解决方案 »

  1.   

    return f2是返回f2函数,return f2()返回的是f2函数的返回值。
      

  2.   

    返回的函数f2(),就像返回一个引用一样
    举个简单的例子:
    你传参数的时候传的是函数名f2而不是f2()
      

  3.   

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

  4.   

    查查关于js闭包的看看就知道了http://zhidao.baidu.com/question/317091269.html
      

  5.   

    这是js闭包啊
    闭包规定返回的函数不能含有return语句
    也就是说如果return f2(),就会是return return n,这样是不允许的
    如果是return f2 就相当与返回一个函数,这个函数语法是return n.
    闭包确实挺难理解的
    建议楼主多看些教材多看些例子
    我也是刚刚接触 共同加油。