在函数运行的第一个实例上设置Variable的值

时间:2015-05-01 10:30:35

标签: javascript variables scope

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

我的Javascript:



function myFunction(){
	var i=0;
	//Body of function
	i++;
}




1 个答案:

答案 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++;
    }
})();
相关问题