无疑这已经存在,但经过20分钟的寻找,我在任何地方都找不到。

我想要的是一个递增计数的函数,因此,第一次调用uniqueNum()时,它将返回0,然后是1,然后是2,依此类推。

function uniqueNum(){
    if (typeof x !== 'number') {
        var x = 0;
    } else {
        x++;
    }
    return x
}


我不希望函数外有任何全局变量或变量。

我得到的总是返回0;

最佳答案

闭包可以做到这一点:

var uniqueNum = (function(){
    var num = 0;
    return function(){
        return num++;
    }
}());
uniqueNum(); // 0
uniqueNum(); // 1


other answers中所建议的,“静态”变量也可以工作。

09-25 15:30