独特的数字计数器功能

she*_*ock 0 javascript

毫无疑问,这已经存在,但是在看了20分钟后我无法找到它.

所有我想要的是一个向上计数的函数,所以第一次调用uniqueNum()时它返回0,然后是1,然后是2等.

function uniqueNum(){
    if (typeof x !== 'number') {
        var x = 0;
    } else {
        x++;
    }
    return x
}
Run Code Online (Sandbox Code Playgroud)

我希望在函数之外不需要任何全局变量或变量.

我得到的总是返回0;

bfa*_*tto 7

关闭可以做到这一点:

var uniqueNum = (function(){
    var num = 0;
    return function(){
        return num++;
    }
}());
uniqueNum(); // 0
uniqueNum(); // 1
Run Code Online (Sandbox Code Playgroud)

如其他 答案所示,"静态"变量也有效.