如果我有:
function firstFunction(){
var counter = 0;
secondFunction();
secondFunction();
secondFunction();
secondFunction();
}
function secondFunction(){
counter++;
}
由于变量的局部作用域,我得到了一个错误,但是如果不使用全局变量,我还能如何做这样的事情呢?
最佳答案
一种方法是使用闭包:
(function() {
var counter = 0;
function firstFunction() {
secondFunction();
secondFunction();
secondFunction();
secondFunction();
}
function secondFunction() {
counter++;
}
})();
或者,您可以将 counter
的值传递给 secondFunction
,如下所示:
function firstFunction() {
var counter = 0;
counter = secondFunction(counter);
counter = secondFunction(counter);
counter = secondFunction(counter);
counter = secondFunction(counter);
}
function secondFunction(counter) {
return ++counter;
}
关于javascript - 没有全局变量的变量范围和共享信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16553415/