JS闭包的概念。。。这两个函数让我凌乱了,他们同样可以返回局部变量,但是我还是分不清区别在哪 财富值97

2016-10-18 00:14发布

function f1(){     var a=1;     return a; }
function f1(){     var b=1;     function f2(){         return b;     }     return f2; }

按照闭包的概念:“函数体内的变量可以保存在函数作用域内的特性就叫做闭包”,第二个才是闭包,但是他们所实现的结果是一样的,他们同样可以实现在函数外面访问函数内部变量的效果,那么第一个f1()函数和第二个具体的区别在哪里呢?

12条回答

个人感觉第二个函数应该是 return f2;而不是 return f2()。然后在函数外调用,最终可以使用 f1 函数内的 b 变量,这就有闭包的意思了

一周热门 更多>