0

重複の可能性:
これの目的は何ですか? (function ($) { //ここに関数コード })(jQuery);
関数の前の感嘆符は何をしますか?
自己呼び出し機能を無効にしますか? !関数 ($) { … }(window.jQuery);

!function ($) {
     $(function() {
            .
            .
            .
    })
}(window.jQuery)

jquery の例でこれを見て、!function($){}(window.jQuery) が何のためにあるのか疑問に思っていました。特にエクスクラメーションマークは初めてでした。

4

1 に答える 1

2

いくつかの調査を行った後、わかりましたが、他の人のために答えを残しておきます。

基本的には、ドル記号も使用する 他の JavaScript ライブラリとの競合を避けるためです。

そのため、Jquery は、ドル記号の代わりに jQuery または window.jQueryを使用するようアドバイスしています。通常、 jQuery.noConflict()と組み合わせて使用​​され、ライブラリを混在させるときに、他の JavaScript ライブラリで使用される $ 記号を jQuery に放棄させます。

これは実際には、window.jQuery オブジェクトを渡して$記号に渡す自己実行関数を実行する方法です。このようにして、コードとの競合を引き起こす可能性のある他の JavaScript ライブラリについて心配することなく、コードでドル記号を使用し続けることができます。

この関数にまとめると、どこでも window.jQuery を使用して $ 記号を置き換える必要がなくなります。

これがexecute function () {}() 好きな場合は、単なる関数宣言であるため、構文エラーが発生します。 _ 実行可能な式に変換します。

したがって、基本的には両方を同じ目的で使用できます。

!function($){}()
(function($){})()

修正・補足はご自由にどうぞ。

参照:

于 2012-12-07T20:45:00.300 に答える