JavaScriptを使用してタイマーを作成しようとしています。ここに私の機能があります:タイミングイベント(setTimeout)を使用したJavaScript再帰
私は時間(0)を実行すると、ID = "テスト"の部分に何も起こりません。 numは常に0に等しく、bufは、関数が呼び出されるたびに(警告関数から)常に1です。
私はJavaとCに慣れています。これらの言語で動作することはわかっています。私はJavaScriptも値渡し言語であることを知っています。なぜこのタイマーは機能しませんか?また
、私が試した(とNUMに bufをすべてを変更)する場合、なぜ何も起こりませんでした
t=setTimeout("time(num)",1000);
私はタイマーを作成する他の方法がある知っているが、私は理由を知りたいですこの方法は機能しません。ありがとう。
これは再帰だと思うかもしれませんが、実際はそうではありません。 'time()'が呼び出されると、 'setTimeout()'を呼び出し、後で実行される文字列を渡します。その後、 'time()'が戻り、しばらくしてから 'time()'がタイマーコードによって再び呼び出されます。これは技術的に再帰的ではありません。 'time()'への最初の呼び出しは、2番目の呼び出しが起こる前に終了しています。あなたはちょっと待っています。 – jfriend00