我试图每次调用函数时都不要重新初始化(希望在这里使用正确的单词)。因此,第一次调用它时,应该对其进行初始化,但是在初始化之后,它应该仅使用该引用。
这是我正在尝试使用的代码。
JSFiddle
console.clear();
function mainFunction(e) {
var index = 0;
function subFunction() {
console.log(index++);
}
return subFunction();
}
window.addEventListener('click', mainFunction)
每次调用
index
时,mainFunction
应该增加一。显而易见的解决方案是使index
成为全局变量(或仅在mainFunction
之外)。但是我需要index to stay in
mainFunction`。每次(使用相同的引用)如何调用
index
时,如何使mainFunction
递增?我尝试将
mainFunction
分配给变量,然后在事件监听器中调用该变量,var test = mainFunction;
window.addEventListener('click', test)
但这没用。结果是相同的。
最佳答案
您应按以下步骤更正代码;
console.clear();
function mainFunction(e) {
var index = 0;
function subFunction() {
console.log(index++);
}
return subFunction; // <<< don't invoke subfunction
}
window.addEventListener('click', mainFunction()) // <<< invoke mainfunction