繁体   English   中英

如何统计一个返回自身的函数被调用了多少次?

[英]How to keep a count of how many times a function which returns itself has been called?

我的问题是,如果我有这样的功能

function f(a) {
if (a == undefined) {
    alert(1)
    return f
} else {
    alert(2)
}

}

我这样称呼它,例如f()()()()('123') ,如何跟踪f被调用了多少次?

编辑:我玩了一圈,并提出了一个解决方案:

function f(a) {
if (!f.count) {
    f.count = 0;
}
if (a == undefined) {
    alert(1);
    ++f.count;
    return f;
} else {
    f.count = 0;
    alert(2);
}

}

目前,alert(1)和alert(2)实际上是占位符。 count变量将在实际函数的else节中使用。 谢谢大家的帮助。

不要将计数器附加到函数本身上,而不会污染全局空间。

function f(a)
{
    ++f.counter;
    if (a) {
       doAThing();
       return f;
    } else 
       doAnotherThing();
}
f.counter = 0;

现在,您可以随时通过评估f.counter来访问呼叫数量。

只需在函数范围之外创建一个count变量,每当您输入函数时,就可以增加其值。

var count = 0;

function f(a) {
    count++;

    if (!a) {
        alert(1);
        return f;
    } else {
        alert(2);
    }
}

“包装功能”是指“关闭”吗?

var f = (function (a) {
  var count = 0; 

  return function () { 
    console.log(count);
    count += 1;

    if (!a) {
      alert(1);
      return f;
    } else {
      alert(2);
    }
  }

})();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM