我正在尝试制作一个保留状态但被foo()调用的函数。
可能吗?

最佳答案

我相信这就是您想要的:

var foo = (function () {
    var state = 0;

    return function () {
        return state++;
    };
})();

或者,遵循the Wikipedia example:
var makeAccumulator = function (n) {
    return function (x) {
        n += x;
        return n;
    };
};

var acc = makeAccumulator(2);

alert(acc(2)); // 4
alert(acc(3)); // 7

JavaScript是其中一种语言,恕我直言,它对作为头等公民的功能提供了出色的支持。

关于javascript - 是否可以用JavaScript编写仿函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1124645/

10-14 11:50