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