我在这里有一个简单的问题。这是下面的代码

    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/

10-13 01:50