重複の可能性:
これはどういう意味ですか?(関数(x、y)){…}){a、b); JavaScriptで
JavaScriptオブジェクト/関数/クラス宣言を囲む括弧はどういう意味ですか?
こんにちは、みんな
私は以下が何をするのか分かりません:
(function(){
// Do something here
...
})(someWord) //Why is this here?;
私の質問は次のとおりです。
(function(){});
?私は通常、これらをjqueryコードや他のいくつかのjavascriptライブラリで見ます。
特定のパラメーターを使用して匿名関数をすぐに呼び出しています。
例:
(function(name){
alert(name);
})('peter')
これは「peter "」を警告します。
JQueryの場合、パラメーターとしてjQuery
を渡し、関数で$
を使用できます。したがって、noConflictモードでもjQueryを使用できますが、便利な$
を使用してください。
jQuery.noConflict()
(function($){
var obj = $('<div/>', { id: 'someId' });
})(jQuery)
someWord
をパラメーターとして使用して、すぐに呼び出される関数を作成しています。
基本的に、これにより無名関数を宣言し、それを括弧で囲み、(someWord)
と書くことで関数を実行できます。オブジェクトを宣言し、すぐにオブジェクトをインスタンス化することと考えることができます。
これは、無名関数(他の関数内に「ネスト」できる名前のない関数)を作成し、その関数に引数を渡すために使用されます。 someWordは引数として渡され、関数はキーワード「arguments」を使用してそれを読み取ることができます。
簡単な使用例:
function Foo(myval) {
(function(){
// Do something here
alert(arguments[0]);
})(myval); //pass myval as argument to anonymous function
}
...
Foo(10);
これは、無名関数を定義してすぐに実行する方法です。いわば痕跡を残しません。関数のスコープは本当にローカルです。 ()
最後の角かっこは関数を実行します-囲み角かっこは、実行されているものを明確にするためのものです。
おそらく this postは少し役に立ちます。