我在这里有一个简单的问题。这是下面的代码
var num = 0;
var increment = function() {
return function() { num++; };
};
increment();
increment();
但是,当我尝试运行它时,它会出错undefined is not a function
。怎么会?是不是increment
明确的功能?
另外,当我写的时候typeof increment
,它返回undefined
。
当increment()
被调用两次,应该修改num
,并成为2。
我猜你想做这样的事情:
> var makeIncrement = function () { var num = 0; return function () { return num++ } }
undefined
> increment = makeIncrement()
function () { return num++ }
> increment()
0
> increment()
1
makeIncrement()
为了返回内部函数,必须调用该函数(),然后可以将其分配给变量。分配后,您可以调用它,它将按预期工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句