0
在下面的一段蹦牀代碼中,我將從我的視圖中顯示的按鈕中調用 onclick = export(add,5)
。如何確保此通話始終返回5
的值,而不取消註釋下面代碼中//x=0
的行?導出功能需要設置爲純函數
var x = 0;
function repeat(operation, num) {
return function() {
if (num <= 0) {
console.log(x);
// x=0;
return;
}
operation();
return repeat(operation, --num);
}
}
function trampoline(fn) {
while (fn && typeof fn === 'function') {
fn= fn();
}
}
this.export = function (operation, num) {
trampoline(function() {
return repeat(operation, num);
});
}
function add()
{
++x;
}
基本上,我想一個解決方案,我的變量x的範圍將確保程序總是返回時,執行n次相同的輸出(換句話說,我要設置「出口」作爲一個純粹的功能)
感謝Naomik。這完全回答了我的問題。我正在尋找使這個函數純粹沒有明確地清除x。但是,您是否具有與該功能等效的ECMAScript 5?這將是很大的幫助。 – vamsee
@vamsee,我加了es5 – naomik
非常感謝Naomik。我是認真的 :) – vamsee