0

jQuery を使用して Web サイトを開発しており、コードをいくつかのスクリプト ファイルに整理しています。

私が間違っていなければ、次のボイラープレートのようにコードを整理するベスト プラクティスがあります (分離されたスコープを作成し、undefined値を正しく設定します)。

(function($, undefined) {
    $(document).ready(function() {
        // code here
    });
})(jQuery);

私の場合、サーバー側のスクリプトによって出力される外部構成にも依存します。たとえば、グローバル変数として保存されますsite_config。したがって、現在、私のスクリプトボイラープレートは次のとおりです。

(function(window, undefined) {
    var document = window.document;
    var $ = window.jQuery;
    var config = window.site_config;

    // equivalent to $(document).ready(function() {...
    $(function() {
        // code here using `config`
    });
})(window);

私の質問は次のとおりです。このボイラープレートにキャッチ/落とし穴はありますか?

具体的には:

  1. window明示的に渡しても大丈夫ですか?(ラッパー関数がグローバル スコープにあるとします)
  2. またはを使用する必要がありますwindow.documentjQuery.document?両方が間違っている場合、正しく参照するにはどうすればよいですか?
4

1 に答える 1

0

ウィンドウを明示的に渡しても問題ありませんか?

それは問題ありませんが、不要です (ウィンドウ オブジェクトをモジュール パターンに渡す理由を参照してください)。

window.document または jQuery.document を使用する必要がありますか? 両方が間違っている場合、正しく参照するにはどうすればよいですか?

jQuery.documentjQuery関数オブジェクトにはそのようなプロパティはありません。ただし、documentはグローバルで書き込み不可の変数であるため、そのまま使用しても問題ありません。

于 2013-03-16T15:13:24.733 に答える