Javascript 函数中的if语句中的函数
我目前拥有以下代码:Javascript 函数中的if语句中的函数,javascript,Javascript,我目前拥有以下代码: function someFunctionThatRunsOnce(identifier){ if (var < 1){ runSomeOtherFunction(identifier); var++; } } function-somefunctionthattrunsonce(标识符){ if(var
function someFunctionThatRunsOnce(identifier){
if (var < 1){
runSomeOtherFunction(identifier);
var++;
}
}
function-somefunctionthattrunsonce(标识符){
if(var<1){
runSomeOtherFunction(标识符);
var++;
}
}
当var<1为真时,变量不会增加。它保持在0且不增加。当我移动变量increment语句about runSomeOtherFunction()时,它就可以正常工作了
我想知道的是:
1) 为什么会这样?为什么运行第二个函数会禁用增量?
2) 有更好的方法吗?在一组非常特定的情况下,我需要以这种方式运行这个函数一次。运行的函数在其他地方使用(标识符)的不同参数
请保持简单,我是一个超级noob,不知道jQuery,只知道简单地使用JS。一个大问题是“var”不是一个有效的变量名,它是一个保留关键字
您可以轻松地将包装器用作命名空间来存储被调用或未被调用的状态:
function someFunctionThatRunsOnce(identifier){
if (!someFunctionThatRunsOnce.spent){ //not run yet?
someFunctionThatRunsOnce.spent=true; //set as run
runSomeOtherFunction(identifier); //run real workload
}
}
这使您可以避免全局变量,并减少runSomeOtherFunction()意外更改已用跟踪器属性状态的可能性。请显示实际代码或显示问题的完整示例。您所展示的代码的行为与您所描述的不同。实际上,这正是它的外观。如果我倒转第三行和第四行,它就行了。这更简单。如果调用函数导致代码出现问题,我们需要查看该函数中的内容。否则就不可能说什么是错的。