在下面的 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 次时始终返回相同的输出(换句话说,我想将“导出”设置为纯函数)