闭包如何在此代码中应用?

时间:2018-06-19 12:58:59

标签: javascript closures

在这段代码中,函数似乎会记住nextVal,但我无法理解。

var gimmeSomething = (function(){
        var nextVal;

        return function(){
            if (nextVal === undefined) {
                nextVal = 1;
            }
            else {
                nextVal = (3 * nextVal) + 6;
            }

            return nextVal;
        };
    })();

    gimmeSomething();       // 1
    gimmeSomething();       // 9
    gimmeSomething();       // 33
    gimmeSomething();       // 105

0 个答案:

没有答案