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