2

jQueryを使用したCoffeeScriptでは、次のステートメントに違いはありますか?

jQuery ($) ->
jQuery ->
$ - >
4

3 に答える 3

4

最初の1つは、プレーンJavaScriptの場合と同様に、他の2つとは異なります。$そこで、グローバル名「jQuery」を使用して、ショートカットがjQueryにリンクされていることを確認しながら、「DOMready」イベントのイベントハンドラーを登録します。他の2つのスタイルはそれを行いません。したがって、イベントハンドラーのローカルスコープでは、$外部にある値になります。

于 2012-08-22T19:03:48.213 に答える
1

これは、質問の3つのステートメントすべてが基本的に関数のハンドラーを設定している$(handler)のと同じであることを知っておくことが重要です。$(document).ready(handler)jQuery.ready

それが邪魔にならないように、jQueryはreadyjQueryオブジェクトである関数に提供されたハンドラーに変数を渡します。したがって、最初の例では、ハンドラーはこれを利用して$、と同じになるように(再)設定していjQueryます。ハンドラーがjQueryが渡す変数を受け入れる必要はありません。そのため、他の2つのハンドラーは引数を受け入れなくてもかまいません。

通常、これを行う必要があるのは、$jQueryなどのグローバルを使用する別のライブラリがある場合のみです。

于 2012-08-22T19:33:46.917 に答える
1

デフォルトでは、jQueryはという名前のグローバルオブジェクトとという名前jQueryのグローバルエイリアスを作成します$。つまり、window.$ = window.jQuery。そのため、両方を参照している別のドキュメントが表示される場合があります。他の特定のライブラリも$、名前として使用するのが好きです。そのため、jQueryはnoConflictモード$を提供します。このモードでは、以前の値にリセットできます。

簡単に言うと、を使用している場合を除いて、優先する必要 があります。$ -> noConflict

jQueryここに、参考のために、引数として関数が与えられたときの関数の公式ドキュメントがあります:http: //api.jquery.com/jQuery/#jQuery3

于 2012-08-22T20:16:32.630 に答える