[過去ログ] JavaScript の質問用スレッド vol.125 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
499: (ワッチョイ 8202-9yt5 [27.92.176.51]) 2023/01/04(水)19:01 ID:jNmuxM610(1/8) AAS
「無名関数」、「関数リテラル」の理解がちょっとぼやけています。
次の様なコードがあったとき、
let calcResult = function calc(a,b){
return a*b;
}
calc()
と()をつけて表せるものが普通の関数、それを変数に代入したもの
calcResult
が関数リテラルかと思っていました。
しかし、どうやら違うようで。。
500(1): (ワッチョイ 8202-9yt5 [27.92.176.51]) 2023/01/04(水)19:01 ID:jNmuxM610(2/8) AAS
例えば以下の2つの関数があります。
■「function関数」を変数に格納
let calcResult1 = function calc(a,b){
return a*b;
}
■「無名関数」を変数に格納
let calcResult2 = function(a,b){
return a*b;
}
「無名関数」は「関数リテラル」と同義である。とさまざまな文献に記述されています。
省6
501(2): (ワッチョイ 8202-9yt5 [27.92.176.51]) 2023/01/04(水)19:02 ID:jNmuxM610(3/8) AAS
SetInterval()
に与える引数は、関数リテラルでなくてはならないそうです。
となると、以下は誤りで、
SetInterval(calcResult1,1000);
以下なら問題ない
SetInterval(calcResult2,1000);
という理解でよろしいでしょうか?
505: (ワッチョイ 8202-9yt5 [27.92.176.51]) 2023/01/04(水)20:57 ID:jNmuxM610(4/8) AAS
>>502
すっごい分かりやすい。
モヤモヤしていたのがすっきりしました。
ありがとうございました。
508: (ワッチョイ 8202-9yt5 [27.92.176.51]) 2023/01/04(水)21:23 ID:jNmuxM610(5/8) AAS
あれ。関数リテラルには引数はないのか。。引数の不要な関数しか関数リテラルにならんのか。
もちょっと調べてみます。
509(1): (ワッチョイ 8202-9yt5 [27.92.176.51]) 2023/01/04(水)21:32 ID:jNmuxM610(6/8) AAS
>>507
必要ならページ画像をどっかにアップします。。
技術評論社
JavaScript本格入門
外部リンク:gihyo.jp
P362
setTimeout/SetIntervalメソッドの注意点
...引数funcは必ず関数リテラルで指定してください。
510: (ワッチョイ 8202-9yt5 [27.92.176.51]) 2023/01/04(水)21:39 ID:jNmuxM610(7/8) AAS
でも何かの引数に関数をわたすときは、
一般的に関数リテラルで渡すのがデフォと
ぼんやり思っている。
514(2): (ワッチョイ 8202-9yt5 [27.92.176.51]) 2023/01/04(水)22:21 ID:jNmuxM610(8/8) AAS
>>512
setTimeout()の例でしかもjQueryで
申し訳ないのですが。
1秒後に#displayのhtmlの内容を空にするコードです。
以下のようなコードではsetTimeoutが動かず、
setTimeout($('#display').html(' '), 1000);
代わりに、以下で動きます。
function clearDisplay(){
$('#display').html('');
}
省5
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.042s