- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:関数を呼んだら、その中の関数も自動実行される?)
関数の実行タイミングが分からないので教えてください
このQ&Aのポイント
- 関数を呼んだら、その中の関数も自動実行されるのか?関数の実行タイミングが分からないので教えてください。
- 下記のコードで、なぜ引数が渡るのか疑問です。「goo」は無名関数を格納するための変数だと思うのですが、関数実行になるのでしょうか?引数が渡る理由を教えてください。
- 自分的には、portal関数を呼んで変数「goo」に無名関数を格納した後、明示的に「goo」を呼ぶ必要があると思うのですが、下記のコードでTypeErrorエラーになってしまいます。なぜエラーが発生するのか教えてください。明示的に呼んだ2回目は引数が渡らないからでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
関数について以下のことをしっかり抑えておきましょう。 (1)関数の定義 var hoge = function(){return 5;}; (2)関数の実行 hoge();//関数が実行され、5が返される。 次に関数の定義と実行を纏めて行う方法。 (3)関数の定義と同時に実行(最後に()が付くのがポイント) var hoge = function(){return 5;}(); 最後に()を付けることで、定義と同時に関数が実行される。 この時、hogeには、関数の実行結果である5が格納される。 (4) 関数の定義と実行(引数あり) var hoge = function(fuga){return fuga;}(10); 最後の()内の10がfugaに入り、関数はその数(10)を返し、hogeに代入。 定義時実行の書き方としては、以下の2パターンが有る。 (function(){})(); function(){}();
その他の回答 (1)
- Picosoft
- ベストアンサー率70% (274/391)
回答No.1
この2つの違いについてご自分で動かしてチェックしてみてください。 (1) var obj = function(a){return a*a;}(5); console.log(obj.toString()); (2) var obj = function(a){return a*a;}; console.log(obj.toString());
質問者
お礼
回答ありがとうございました。 大変参考になりましたー
お礼
回答ありがとうございました。 説明大変分かりやすかったです。 勉強になりましたー