Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
第一次在javascript/jquery中运行函数时没有做任何事情_Javascript_Jquery_Function_Loops_If Statement - Fatal编程技术网

第一次在javascript/jquery中运行函数时没有做任何事情

第一次在javascript/jquery中运行函数时没有做任何事情,javascript,jquery,function,loops,if-statement,Javascript,Jquery,Function,Loops,If Statement,问题是如果函数是第一次运行,我需要中断它 是否有可用的功能,或者我必须执行以下操作 var times = 1 function abc () { if (times == 1) break; else ..... times++; } times = 0; 谢谢。您可以使用此模式: var isFirstTime = true; function abc () { if (isFirstTime) {

问题是如果函数是第一次运行,我需要中断它 是否有可用的功能,或者我必须执行以下操作

var times = 1

function abc () {
    if (times == 1)
      break;
    else
      .....
    times++;
} 

times = 0; 

谢谢。

您可以使用此模式:

var isFirstTime = true;

function abc () {
    if (isFirstTime)
    {
        isFirstTime = false;
        return;
    }
    .....
} 


abc(); //returns
abc(); //runs
function abc() {

    if (!abc.flag) {
        abc.flag = true;
        return;
    }

    // .. rest of the code
}
它基于函数也是Javascript中的一个对象这一事实

基本上这是一种记忆模式。它的缺点是,
标志
属性可以被其他代码覆盖。其优点是,您不需要使用额外的变量来污染全局范围


thg435提出了更优雅的解决方案。

您可以使用以下模式:

function abc() {

    if (!abc.flag) {
        abc.flag = true;
        return;
    }

    // .. rest of the code
}
它基于函数也是Javascript中的一个对象这一事实

基本上这是一种记忆模式。它的缺点是,
标志
属性可以被其他代码覆盖。其优点是,您不需要使用额外的变量来污染全局范围


thg435提出了更优雅的解决方案。

在我看来,您试图在错误的地方解决问题。你能告诉我们整个故事吗

与此同时,像这样的事情应该会起到作用:

function abc() {
    abc = function() {
         // ...actual work...
    }
}

详细信息取决于函数的定义方式(全局、局部、作为一种方法)。

在我看来,您试图在错误的地方解决问题。你能告诉我们整个故事吗

与此同时,像这样的事情应该会起到作用:

function abc() {
    abc = function() {
         // ...actual work...
    }
}
详细信息取决于函数的定义方式(全局、局部、作为一种方法)。

尝试以下方法:

var times = 1;

function abc () {
if (times == 1){}     
else{
  .....
times == 0;}
}
试试这个:

var times = 1;

function abc () {
if (times == 1){}     
else{
  .....
times == 0;}
}

break
将取消
for
while
do while
switch
语句,但不是函数。改为使用
return
break
将取消
for
while
do while
switch
语句,但不是函数。使用
return
代替.OP-选择此答案!:)@不,这不是最好的答案。thg435提出了正确的方法。thg435的解决方案在哪里?@MarkBoulder现在是georg,我想是更改了用户名。但是将一个函数放在另一个函数中如何使它不会第一次运行呢?OP-选择这个答案!:)@不,这不是最好的答案。thg435提出了正确的方法。thg435的解决方案在哪里?@MarkBoulder现在是georg,我猜是更改了用户名。但是将一个函数放在另一个函数中如何使它不会第一次运行呢?这是这种情况下的最佳模式。这没有任何意义。介意解释一下它是怎么工作的吗?谢谢这是这种情况下最好的模式。这没有任何意义。介意解释一下它是怎么工作的吗?谢谢