setIntervalとsetTiemoutの関数に引数を使う方法

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文の中でも意図したとおりの引数を渡す事ができました。
 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年4月
 123456
78910111213
14151617181920
21222324252627
282930