1

現在、すべての JavaScript 関数を 1 つの関数にまとめているため、グローバル名前空間を汚染することはありません。

例えば

var App = function() {

    function a() {
    }

    return {};
}();

ここで jQuery を使用したいので、これを次のようにラップします。

(function (window, document, $) {
   ...
}(window, document, jQuery));

jQuery 関数で var App = function () {} をラップしようとしましたが、App で AJAX 設定プロパティを使用すると問題が発生します。何か案は?

4

2 に答える 2

1

別の無名関数を使用する代わりに、windowdocument、およびjQueryを app に直接渡すことができます。

var App = function(window, document, $) {
    function a() {
    }
}(window, document, jQuery);

または、グローバル名前空間で宣言することもできますが、次Appのように jQuery クロージャーで定義します。

var App = null;

(function (window, document, $) {
    App = function() {
        function a() {
        }
    };
}(window, document, jQuery));

これらの両方の例で を削除return {}し、2 番目の例では関数を非自己呼び出しにしたことに注意してください。構造のその部分は、コピー アンド ペーストのクラフトのように見え、不要です。

于 2012-02-13T06:05:26.980 に答える
0

これはどう:

var App = function(window, document, $) {

      function a() {
      }

      return {};

}(window, document, jQuery);
于 2012-02-13T06:04:00.510 に答える