次のようなjQueryコードブロックがあります。
(function($){
//Normal code goes here
})(jQuery);
今、理解したかった
- これが自己実行機能の場合は? はいの場合、なぜですか?
- 関数に渡す「$」と最後に指定する「jQuery」の違いは?そのうちの 1 つは引数と呼ばれ、もう 1 つはパラメーターと呼ばれますか?
- 最後に「jQuery」を指定する必要がありますか。
ありがとうございました。
次のようなjQueryコードブロックがあります。
(function($){
//Normal code goes here
})(jQuery);
今、理解したかった
ありがとうございました。
これが自己実行機能の場合は? はいの場合、なぜですか?
はいといいえ。これは即時呼び出し関数式ですが、通常は再帰の概念に関連付けられているにもかかわらず、一部の人々はこれらを「自己実行」と呼ぶ傾向があります。
関数に渡す「$」と最後に指定する「jQuery」の違いは?そのうちの 1 つは引数と呼ばれ、もう 1 つはパラメーターと呼ばれますか?
丁度。
最後に「jQuery」を指定する必要がありますか。
それ以外の場合、$
パラメーターはどこから入力されますか?
あなたが見逃していると思われるもう1つの質問を追加します。
すぐに呼び出される関数式を使用する理由
これは単純に IIFE スコープ内にエイリアスjQuery
されるため、jQuery がモードであるかどうかに関係なく安全に使用できます。プラグインの開発や WP での作業に非常に役立ちます。$
$
noConflict
はい、それは「自己実行」です。内側の部分は「関数式」であり、(必要な) パラメータ(jQuery)
によってすぐに呼び出されるため、「すぐに呼び出される関数式」というより一般的な用語が使用されます。
変数$
は、関数に対してスコープ内でローカルです。$
jQuery プラグインは、(グローバル)$
変数が他の何かによって使用されているため、jQuery が「競合なし」モードであっても、共通の略語が内部的に使用されるように、このように記述されることがよくあります。
正式には、宣言内の変数は「パラメーター」と呼ばれ、呼び出し内の変数は「引数」と呼ばれます。arguments
JS では、疑似配列を使用して提供されたパラメーターにアクセスできるため、あいまいさが生じると思います。
1) 自己実行型と即時実行型
最後に括弧が付いているのでわかります。
次のような関数を記述します。
function myFunc () {}
または好き
var myFunc = function () {};
そして、次のような関数を呼び出します。
myFunc();
あなたはそれが(function () {})();
最後に当たるとすぐに発火するように書いています。
2) パラメータは、関数が期待するものです。引数は、関数に与えるものです。
var number_arg = 35,
string_arg = "Bob";
function myFunc (number_param, string_param) {
console.log(number_param, string_param);
}
myFunc(number_arg, string_arg); // 35 "Bob";
params に引数とは異なる名前を付けることができるという事実は、関数内で値を別の方法で「エイリアス」できることを意味します。
function myFunc ($) { console.log($); }
myFunc("SUPERLONGSTRINGOFDOOMISWHATI'MPUTTINGINHERE");
myFunc(MYAPP.Module.sub_module.plug_in);
一方、関数内では、 を使用するだけで、これらすべてを操作できます$
。
jQuery
3) 「エイリアシング」は、対で起こっていること$
です。