34

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

こんにちは、みんな

以下が何をするのかわかりません。

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

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

  1. 関数を角かっこ .ie 内に置くことの意味は何(function(){});ですか?
  2. 関数の最後にある括弧のセットは何をしますか?

通常、これらは jquery コードやその他の JavaScript ライブラリで見られます。

4

5 に答える 5

55

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

例:

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

これは「ピーター」に警告します。

jQuery の場合jQuery、パラメーターとして渡し$て関数で使用できます。したがって、noConflict-mode で jQuery を引き続き使用できますが、便利な を使用できます$

jQuery.noConflict()
(function($){
  var obj = $('<div/>', { id: 'someId' });
})(jQuery)
于 2010-10-28T14:13:41.710 に答える
11

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

于 2010-10-28T14:10:46.583 に答える
7

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

于 2010-10-28T14:11:49.720 に答える
7

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

于 2010-10-28T14:12:23.210 に答える
7

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

簡単な使用例:

function Foo(myval) {
    (function(){
      // Do something here
      alert(arguments[0]);
    })(myval); //pass myval as argument to anonymous function
}
...
Foo(10);
于 2010-10-28T14:13:25.377 に答える