jQueryを使用したCoffeeScriptでは、次のステートメントに違いはありますか?
jQuery ($) ->
jQuery ->
$ - >
最初の1つは、プレーンJavaScriptの場合と同様に、他の2つとは異なります。$
そこで、グローバル名「jQuery」を使用して、ショートカットがjQueryにリンクされていることを確認しながら、「DOMready」イベントのイベントハンドラーを登録します。他の2つのスタイルはそれを行いません。したがって、イベントハンドラーのローカルスコープでは、$
外部にある値になります。
これは、質問の3つのステートメントすべてが基本的に関数のハンドラーを設定している$(handler)
のと同じであることを知っておくことが重要です。$(document).ready(handler)
jQuery.ready
それが邪魔にならないように、jQueryはready
jQueryオブジェクトである関数に提供されたハンドラーに変数を渡します。したがって、最初の例では、ハンドラーはこれを利用して$
、と同じになるように(再)設定していjQuery
ます。ハンドラーがjQueryが渡す変数を受け入れる必要はありません。そのため、他の2つのハンドラーは引数を受け入れなくてもかまいません。
通常、これを行う必要があるのは、$
jQueryなどのグローバルを使用する別のライブラリがある場合のみです。
デフォルトでは、jQueryはという名前のグローバルオブジェクトとという名前jQuery
のグローバルエイリアスを作成します$
。つまり、window.$ = window.jQuery
。そのため、両方を参照している別のドキュメントが表示される場合があります。他の特定のライブラリも$
、名前として使用するのが好きです。そのため、jQueryはnoConflictモード$
を提供します。このモードでは、以前の値にリセットできます。
簡単に言うと、を使用している場合を除いて、優先する必要 があります。$ ->
noConflict
jQuery
ここに、参考のために、引数として関数が与えられたときの関数の公式ドキュメントがあります:http: //api.jquery.com/jQuery/#jQuery3