誰かが私にjquery$
との違いを説明する努力をすることができますか?$()
私$()
は、その省略形$jQuery()
が任意のDOM要素を取り、それをjQueryオブジェクトに変換することを知っています。
しかし、私にはわからないのは、それが何であるか、$
そしてそれがどのように違うかということです$()
。親切に教えてください。
ヒープに感謝します、Chaitanya
誰かが私にjquery$
との違いを説明する努力をすることができますか?$()
私$()
は、その省略形$jQuery()
が任意のDOM要素を取り、それをjQueryオブジェクトに変換することを知っています。
しかし、私にはわからないのは、それが何であるか、$
そしてそれがどのように違うかということです$()
。親切に教えてください。
ヒープに感謝します、Chaitanya
$
呼び出すことができる関数$()
です- 。
以下のすべての例ではオブジェクトが返されますが、の動作は$()
指定されたパラメーターによって大きく異なります。できる:jQuery
document.ready
ハンドラーを登録する-$(myfunc)
$('#myid')
$('<div>')
$()
$
また、そのオブジェクトのプロパティとしてさまざまな効用関数$.each
などを含むオブジェクトです。このコンテキストでは、これらの関数の名前空間のように機能します。
$ = jQuery
-これは、またはなどのjQueryユーティリティに使用されるjQueryオブジェクト$.Ajax()
です。$.each()
したがってvar j = $;
、jqueryプロトタイプを変数に割り当てますj
。
$()= jQuery()
-これは、DOM要素をjQueryオブジェクトに変換するか、セレクターを使用してjQueryオブジェクトを取得するために使用されるルートjQueryオブジェクトから呼び出される関数です。
これが役に立ち、他の投稿に追加することを願っています:)
$
= は有効な JavaScript オブジェクト/識別子です。
$()
= $() を呼び出すと、空の jQuery オブジェクトが作成されます。
jQuery() — $() と書くこともできます — 提供されたセレクターに一致する要素を DOM で検索し、これらの要素を参照する新しい jQuery オブジェクトを作成します。
公式ドキュメント こちらのドキュメントをお読みください (クリックしてください)このドキュメントを読むことを強くお勧めします。
あなたの質問は、2 つの個別の質問の組み合わせです。以下を参照してください。
関数を作成する場合:
function my_function(){alert('my_function'); return(33)}
my_function
関数を含む変数です。
my_function()
関数呼び出しの結果です。
関数呼び出しmy_function()
を使用して、関数内の命令を実行したり、返された結果を変数に取得したりしますvar my_var = my_function();
。
関数の変数名を使用して、次のようなパラメーターとして別の関数に渡します。$('a').click(my_function);
JavaScriptでは、変数はスカラー(リテラル値)、配列、オブジェクト、関数を含むあらゆる種類のものである可能性があるためです。
今、そのアイデアを取り入れて、それに基づいて構築します。
$
単なる変数名であるのと同じように、jQuery
は単なる変数名です。
たまたま、この変数には関数が含まれています。これは、関数本体に存在するすべての命令を意味する$()
か、実行します。jQuery()
$
$
ajax
はjQuery名前空間への参照であり、静的メソッド(たとえば、each
など)にアクセスしながら$()
、DOM対応のコールバックを登録する(関数が渡された場合)か、DOMから要素を返す(関数が渡された場合)関数を呼び出します(セレクター文字列または要素が渡された場合)。
ちなみに、$
はの省略形でありjQuery
、ではありません$jQuery
。
Javascript では、すべてがデータであり、これには関数が含まれます。不自然な例として:
function test() {
console.log("test");
}
この例でtest()
は、関数の呼び出しです。単純に使用test
することは、次のようなことができる変数を使用するようなものです。
var t = test;
t();
これによりt
、 と同じデータ/機能が得られtest
ます。
これにより、クロージャーのようなことができます。
function closure() {
var i = 0;
function inner() {
i++;
console.log(i);
}
return inner;
}
関数は単なるデータであるため、関数を返してから呼び出すことができます。したがって、次のように記述します。
var t = closure();
t(); // prints '1'
t(); // prints '2'
他の利点の中でも、これを行うと、名前空間が少しすっきりした状態に保つことができます。
あなたの質問に直接答えるには、次のようにして作成された$
単なるエイリアスです。jQuery
function jQuery() { /* Lots of code */ }
$ = jQuery;