1. ホーム
  2. javascript

なぜjQueryでは「({ })」を使うのか?

2023-08-14 13:57:48

質問

なぜ ({ }) ?

デリゲートですか?

この構文を使う意味は何ですか?

何を包んでいるのか?

例えば

$.ajaxSetup ({ // <-- THIS
    error: fError,
    compelete: fComp,
    success: fSucc
}); // <-- AND THIS

どのように解決するのですか?

{} はJavaScriptのオブジェクト表記法です。 例えば

$('selector').plugin({ option1: 'value' });

この場合、プラグインに設定を含むオブジェクトを渡しています。 プラグインはこれをオブジェクトとして、例えば参照されるものが何であれ、扱うことができます。

settings.option1 //the option you passed in.

もちろん他にもいろいろな使い方がありますが、jQueryではこれが最も一般的な例です。 同じことが .animate() , $.ajax() , .css() 関数などです。プロパティを受け取るものは、一般的にこの形式を使用します。


リクエストに応えて、他の例をいくつか。

渡されたオブジェクトの内部の任意のオブジェクトは、例えば、プロパティだけでなく、同様に関数になることができます。

$("<input>", {
  type: "text",
  focusin: function() { alert("Hi, you focused me!"); }
});    

これで、その入力のフォーカスイベントにアラートが設定されることになります。もう一つは、オブジェクトを拡張して、プロパティを追加する方法です。

var person = { first_name: "John" };
$.extend(person, { last_name: "Smith" });
//equivalent to: 
person.last_name = "Smith";
//or:
person["last_name"] = "Smith";

現在 person には last_name プロパティがあります。 これはプラグインでもよく使われるもので、デフォルトの設定を取得し、次に渡された設定をマージし、指定した設定で上書きし、残りはデフォルトを使用します。

なぜそれを使うのでしょうか? まあ...それがJavaScriptの仕組みであり、jQueryの精神です。情報を渡すための非常に簡潔で柔軟な方法です。