setIntervalとsetTiemoutの関数に引数を使う方法がちょっと分からなかったので調べてみました。
引数を使わない場合
JavaScript
function greeting() { console.log('名無し' + 'さん やっはろー!'); } setTimeout("greeting()", 1000); setInterval("greeting()", 800);
引数を使う場合
JavaScript
function greeting(name) { console.log(name + 'さん やっはろー!'); } setTimeout(function() { greeting('雪ノ下'); }, 1000); setInterval(function() { greeting('由比ヶ浜'); }, 800); for (var i = 0; i < 3; i++) { setInterval(function() { greeting('名無し' + i); }, 800); };
引数を使う場合のデモページ
関数内で引数を持った関数を実行した場合、上の二つは問題なかったのですが、for文で複数回実行した場合、引数のiが全て3となっていました。
引数を使う場合2
JavaScript
function greeting(name) { console.log(name + 'さん やっはろー!'); } setTimeout("greeting('" + "雪ノ下" + "')", 1000); setInterval("greeting('" + "由比ヶ浜" + "')", 800); for (var i = 0; i < 3; i++) { setInterval("greeting('" + "名無し" + i + "')", 500); };
引数を使う場合のデモページ2
こうすると、for文の中でも意図したとおりの引数を渡す事ができました。
【参考サイト】
コメントが承認されるまで時間がかかります。