Javascript 如何使函数的一部分只执行一次,直到它';他可以不这样做

Javascript 如何使函数的一部分只执行一次,直到它';他可以不这样做,javascript,function,Javascript,Function,我如何反复调用javascript函数(repeatedFunction()),但使其仅在repeatedFunction()第一次激活时才激活,比如说警报(“此函数是第一次执行”),但//其他代码始终处于激活状态?另外,如何使警报()允许再次激活,就像第一次执行repeatedFunction()一样?您可以设置一个标志。例如,您有以下代码: var flagAlertExecd = false; function repeatThis () { if (!flagAlertExecd)

我如何反复调用javascript函数(
repeatedFunction()
),但使其仅在
repeatedFunction()
第一次激活时才激活,比如说
警报(“此函数是第一次执行”)
,但
//其他代码始终处于激活状态?另外,如何使
警报()
允许再次激活,就像第一次执行
repeatedFunction()
一样?

您可以设置一个标志。例如,您有以下代码:

var flagAlertExecd = false;
function repeatThis () {
  if (!flagAlertExecd) {
    alert("Only once...");
    flagAlertExecd = true;
  }
  // Repeating code.
}
要重复此代码,最好使用
setInterval

setInterval(repeatThis, 1000);

函数是对象。如果愿意,您可以在函数上设置(稍后清除)标志:

function repeatedFunction() {
    if (!repeatedFunction.suppress) {
        alert("This function is being executed for the first time");
        repeatedFunction.suppress = true;
    }
    // ...other code here...
}
当您想要重置该功能时,任何可以访问
repeatedFunction
的代码都可以清除
repeatedFunction。抑制
标志:

repeatedFunction.suppress = false;
该标志不必在函数上,当然,您可以使用单独的变量



也就是说,我建议看一看大图,检查相关警报是否真的应该是函数的一部分。

您可以通过在函数中声明一个变量并递增它来实现。使用
if
语句,可以检查它被触发了多少次。代码:

var count = 0;

function myfunc(){
 if(count==0){
    alert("Triggering for the first time");
    count++;
 }
    //Your always triggering code here
 }

这甚至可以记录函数被触发的次数。如果您不想在第n次执行
alert()
,它可能会很有用

也可以使用布尔值。像这样:

第二种方法不会跟踪函数被触发多少次的记录,它只会确定函数是否第一次被调用

这两种方法都适用于您的目的

JavaScript将适合此任务。它没有全局变量,将任务保存在单个函数中

var closureFunc=function(){
var numberOfCalls=0;
返回函数(){
如果(numberOfCalls==0)
{
console.log(“第一次运行”);
}
numberOfCalls++;
console.log(numberOfCalls);
};
};
var a=closureFunc()//0
a()//1.
a()//2.
var a=closureFunc()//将numberOfCalls丢弃到0
a()//1.

要重复一个函数,您可以始终使用
setInterval(myFunction,毫秒)这不会第一次执行始终执行的代码。再看看这个问题@Arjun我已经修复了错误您的解决方案似乎是最适合我的问题的解决方案!非常感谢。
var firstTime = true;

function myfunc(){
 if(firstTime){
    alert("Triggering for the first time");
    firstTime = false;
 }
    //Your always triggering code here
 }
 var firstTime = true;

 var myFunction = function() {
   if(firstTime) {
     alert("This function is being executed for the first time");
     firstTime=false;
   }else{
    //whatever you want to do...
   }
 }; //firstTime will be true for the first time, after then it will be false
 var milliseconds = 1000;
 setInterval(myFunction, milliseconds);
 //the setInterval means that myFunction is repeated every 1000 milliseconds, ie 1 second.