【发布时间】:2015-02-16 16:32:01
【问题描述】:
这很好用:
var test = function(){
var a = 0;
console.log(a);
return function (){
a++;
return a;
};
};
var counter = test();
console.log(counter()); //1
console.log(counter()); //2
console.log(counter()); //3
console.log(counter()); //4
为什么我不能得到相同的结果:
console.log(test());
以及为什么我需要在这里通过一个有些冗余的代理(var counter)工作,前提是以下工作正常):
var test = function(k,l){
var c = k + l;
return c;
};
console.log(test(1,2));
这是否与存在闭包的事实有关,我正在调用一个函数,该函数返回一个函数,该函数最终返回一些值?我真的需要在这里定义一个新变量吗,或者我可以节省时间和代码行并直接让它工作?
【问题讨论】:
标签: javascript closures return-value