web-dev-qa-db-ja.com

この "(function(){});"、括弧内の関数は、JavaScriptで何を意味しますか?

重複の可能性:
これはどういう意味ですか?(関数(x、y)){…}){a、b); JavaScriptで
JavaScriptオブジェクト/関数/クラス宣言を囲む括弧はどういう意味ですか?

こんにちは、みんな

私は以下が何をするのか分かりません:

(function(){
  // Do something here
  ...
})(someWord) //Why is this here?;

私の質問は次のとおりです。

  1. 関数を角かっこで囲むことの意味は何ですか。 (function(){});
  2. 関数の最後で括弧のセットは何をしますか?

私は通常、これらをjqueryコードや他のいくつかのjavascriptライブラリで見ます。

32
Shaoz

特定のパラメーターを使用して匿名関数をすぐに呼び出しています。

例:

(function(name){
  alert(name);
})('peter')

これは「peter "」を警告します。

JQueryの場合、パラメーターとしてjQueryを渡し、関数で$を使用できます。したがって、noConflictモードでもjQueryを使用できますが、便利な$を使用してください。

jQuery.noConflict()
(function($){
  var obj = $('<div/>', { id: 'someId' });
})(jQuery)
50
pex

someWordをパラメーターとして使用して、すぐに呼び出される関数を作成しています。

8
Rocket Hazmat

基本的に、これにより無名関数を宣言し、それを括弧で囲み、(someWord)と書くことで関数を実行できます。オブジェクトを宣言し、すぐにオブジェクトをインスタンス化することと考えることができます。

7
Justin Ethier

これは、無名関数(他の関数内に「ネスト」できる名前のない関数)を作成し、その関数に引数を渡すために使用されます。 someWordは引数として渡され、関数はキーワード「arguments」を使用してそれを読み取ることができます。

簡単な使用例:

function Foo(myval) {
    (function(){
      // Do something here
      alert(arguments[0]);
    })(myval); //pass myval as argument to anonymous function
}
...
Foo(10);
7
Shadow Wizard

これは、無名関数を定義してすぐに実行する方法です。いわば痕跡を残しません。関数のスコープは本当にローカルです。 ()最後の角かっこは関数を実行します-囲み角かっこは、実行されているものを明確にするためのものです。

6
fish2000

おそらく this postは少し役に立ちます。

2
darioo