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

时间:2013-03-13 10:47:19

标签: javascript jquery function loops if-statement

问题是我需要在第一次运行时破坏该功能 有没有可用的功能,或者我必须做以下的事情?

var times = 1

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

times = 0; 

感谢。

5 个答案:

答案 0 :(得分:3)

您可以使用此模式:

function abc() {

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

    // .. rest of the code
}

它基于以下事实:Function也是Javascript中的一个对象。

基本上这是一个Memoization模式。它的缺点是flag属性可以被另一个代码覆盖。优点是您不需要使用其他变量污染全局范围。

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

答案 1 :(得分:2)

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

与此同时,这样的事情可以解决问题:

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

详细信息取决于您的函数的定义方式(全局,本地,作为方法)。

答案 2 :(得分:0)

var isFirstTime = true;

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


abc(); //returns
abc(); //runs

答案 3 :(得分:0)

    var firstTime= true

    function abc () {
        if (firstTime)
        {
              firstTime = false;
              return;
        }

        else
        {
          .....
        }

     } 

答案 4 :(得分:0)

试试这个:

var times = 1;

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