• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:(function(){})()の意味)

(function(){})()の意味

このQ&Aのポイント
  • (function(){})()の意味を30文字前後で生成する
  • (function(){})()は関数を即時実行する構文であり、関数内の処理をすぐに実行することができます。
  • (function(){})()を使用することで、関数を定義することなく一時的な処理を実行できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.3

var fuga = (function(){})(); は var fuga = function(){}(); と同じです つまり関数を定義してすぐ呼んでいるだけです

その他の回答 (2)

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

var hoge = function(){return "foo";}; var fuga = hoge(); をhogeを使わずに一行で書くと var fuga = (function(){return "foo";})(); になります。

noname#247307
noname#247307
回答No.1

比較するコードがちょっと変ですね。2つの無形関数は内容が異なっています。オブジェクトのメンバ云々というのは、関数の内容が違うのでやや意味不明な質問になっています。 もっとシンプルにわかりやすく考えてみてください。例えば、以下はいずれも同じ内容の無名関数を使っています。 var fuga1 = function(){ return'value'; }; var fuga2 = (function(){ return 'value'; })(); 例えば、このようにどちらにも同じ無名関数を指定して試してみるとよくわかります。fuga1には関数オブジェクトが代入され、fuga2には無名関数の実行結果(ここでは'value'というテキスト)が代入されます。 つまり、(function(){……})();という書き方は、()内の無名関数をその場で実行した結果が入るのに対し、無名関数をそのまま代入した場合は関数オブジェクトが入るのでその関数を実行しなければ結果が得られない、ということですね。 従って、コンストラクタ関数などのように関数オブジェクトそのものを用意したいか、関数の実行結果だけを欲しいのか、という違いで使い分けていると考えればいいでしょう。

関連するQ&A

専門家に質問してみよう