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