JavaScriptの質問です。
こちらの動画で、
「setIntervalの中で関数定義をすると実行するたびに毎回関数を作ることになるので、外に書いたほうがいい」
と言われていました。
つまり、
Javascript
1setInterval(function() { 2 // 処理 3}, 1000);
とすると1秒おきに新しく関数オブジェクトを作ってから実行することになるので、
Javascript
1function myCallback() { 2 // 処理 3} 4 5setInterval(myCallback, 1000);
のように外に切り出すべきということでした。
これは本当でしょうか?
自分はsetIntervalの実行時に関数オブジェクトが一度だけ作られ、指定ミリ秒ごとにその関数を実行するものと思っていました。
可読性や保守性の面で外に切り出すのはわかるのですが、関数オブジェクトの作成が毎回行われるから外に出すというのは初耳でした。
(一応、関数の代わりに文字列を使う構文では指定時間ごとに文字列をコンパイルして実行するとMDNに書いてありました。)
また、addEventListenerやArray.prototype.forEachではどうなるのでしょうか。
中に関数式を書いてしまうとイベント発火毎や配列反復毎に関数オブジェクトが毎回作られるのですか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。