私はこの投稿からjs closureについて学んでいます:How do JavaScript closures work?。コールバック/クロージャ/引数を使用してjsでループする
私は実験をしたかったので、関数自体にコールバックを使用する関数を作成してループを作成しようとしました。引数を増やして結果を表示します。
最初は私が私が私の引数をインクリメントする方法を変更し、それが働いたthentを働いていなかった。
function test1(i1){
console.log("test1 : "+i1.toString());
setTimeout(function(){test1(i1++);},2500);
}
function test2(i2){
console.log("test2 : "+i2.toString());
setTimeout(function(){test2(++i2);},2500);
}
test1(0);
test2(0);
だけ私に ++をする++ を変更しました。
出力は次のようになります。
test1 : 0
test2 : 0
undefined
test1 : 0
test2 : 1
test1 : 0
test2 : 2
test1 : 0
test2 : 3
test1 : 0
test2 : 4
test1 : 0
test2 : 5
最初のステップは、動作しないのはなぜ?
編集2:
私は++と++の間の差異を知っていますが、とにかく動作してはいけませんか?
編集:
は確かにそれは
閉鎖や実行の順番とは関係ありません。 Nice edit :) – George