在下面的Trampoline代码中,我将致电
我视图中的按钮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次时总是返回相同的输出(换句话说,我想将'export'设置为纯函数)