[英]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.