javascript - 在函数运行的第一个实例上设置变量值

标签 javascript variables scope

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

我的Javascript:

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

最佳答案

您可以像这样在函数对象本身上设置值

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++;
    }
})();

关于javascript - 在函数运行的第一个实例上设置变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29985304/

相关文章:

javascript - 为什么页面加载时设置的变量在 document.ready 范围内不可用?

javascript - JavaScript 中的局部作用域是什么?本地范围与功能范围有何不同?

php - php javascript 的警报框为空

javascript - 第二页不适用于第一页中的代码

javascript - $jsonObj 数据未通过 ajax 传递,仅在 IE(11) 上通过 POST

php - 如何使用变量内容作为 css 类名?

python - 如何在 Python 2.7 中使用临时变量 - 内存

php - Codeigniter 通过单击按钮更改表单操作

java - 在循环之前或循环中声明变量之间的区别?

c++ - 在 C++ 中传递对象会出现 'invalid use of non-static member' 错误