例如,我有一个变量,每次运行该函数时都应该递增。我希望变量最初的值为0,但每次调用函数时都会增加1。我不想给变量全局范围,但是很明显,如果我在函数内声明它,它将在每次调用时重置为0。 在Javascript中有一种简单有效的方法吗?
我的Javascript:
function myFunction(){
var i=0;
//Body of function
i++;
}

答案 0 :(得分:7)
您可以在函数对象本身上设置值,如此
function myFunction() {
myFunction.i = myFunction.i || 0;
myFunction.i++;
}
或者,您可以使用闭包,就像这样
var myFunction = (function () {
var i = 0;
return function () {
// `myFunction` will be this function only and it increments the
// `i` from the enclosed function.
i++;
}
})();