所以看起来Javascript中没有函数静态变量。我试图在函数内增加一个变量,但我不想这样做:

function countMyself() {
    if ( typeof countMyself.counter == 'undefined' ) {
        // It has not... perform the initilization
        countMyself.counter = 0;
    }
}

我想用闭包来做,但我很难理解这些。

有人在另一个问题中提出了这个建议:
var uniqueID = (function() {
   var id = 0;
   return function() { return id++; };
})();

但是当我提醒 uniqueID 时,它所做的只是打印这一行: return function() { return id++; };

所以我想知道如何在不污染全局范围的情况下增加函数中的变量。

最佳答案

您必须实际调用 uniqueID - 您不能将 is 视为变量:

> uniqueID
function () { return id++; }

> uniqueID()
0

> uniqueID()
1

关于Javascript - 使用闭包递增静态函数变量模拟?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19193348/

10-12 16:22