我在这里有一个简单的问题。这是下面的代码
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()
),然后可以将其分配给变量。分配后,您可以调用它,并且它将按预期工作。关于javascript - 未定义不是函数-JavaScript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23898101/