0

次のようなjQueryコードブロックがあります。

(function($){
  //Normal code goes here
})(jQuery);

今、理解したかった

  1. これが自己実行機能の場合は? はいの場合、なぜですか?
  2. 関数に渡す「$」と最後に指定する「jQuery」の違いは?そのうちの 1 つは引数と呼ばれ、もう 1 つはパラメーターと呼ばれますか?
  3. 最後に「jQuery」を指定する必要がありますか。

ありがとうございました。

4

3 に答える 3

3

これが自己実行機能の場合は? はいの場合、なぜですか?

はいといいえ。これは即時呼び出し関数式ですが、通常は再帰の概念に関連付けられているにもかかわらず、一部の人々はこれらを「自己実行」と呼ぶ傾向があります。

関数に渡す「$」と最後に指定する「jQuery」の違いは?そのうちの 1 つは引数と呼ばれ、もう 1 つはパラメーターと呼ばれますか?

丁度。

最後に「jQuery」を指定する必要がありますか。

それ以外の場合、$パラメーターはどこから入力されますか?


あなたが見逃していると思われるもう1つの質問を追加します。

すぐに呼び出される関数式を使用する理由

これは単純に IIFE スコープ内にエイリアスjQueryされるため、jQuery がモードであるかどうかに関係なく安全に使用できます。プラグインの開発や WP での作業に非常に役立ちます。$$noConflict

于 2013-01-21T10:43:36.357 に答える
1

はい、それは「自己実行」です。内側の部分は「関数式」であり、(必要な) パラメータ(jQuery)によってすぐに呼び出されるため、「すぐに呼び出される関数式」というより一般的な用語が使用されます。

変数$は、関数に対してスコープ内でローカルです。$jQuery プラグインは、(グローバル)$変数が他の何かによって使用されているため、jQuery が「競合なし」モードであっても、共通の略語が内部的に使用されるように、このように記述されることがよくあります。

正式には、宣言内の変数は「パラメーター」と呼ばれ、呼び出し内の変数は「引数」と呼ばれます。argumentsJS では、疑似配列を使用して提供されたパラメーターにアクセスできるため、あいまいさが生じると思います。

于 2013-01-21T10:41:11.350 に答える
0

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);

一方、関数内では、 を使用するだけで、これらすべてを操作できます$

jQuery3) 「エイリアシング」は、対で起こっていること$です。

于 2013-01-21T10:49:16.890 に答える