2

私はこのようにやっています:

;(function($, window, document, undefined){

  var MyNamespace= MyNamespace || {};

  $.MyNamespace.someMethod = function(){
    // code
  };

  $.MyNamespace.someOtherMethod = function(){
    // code
  };

  $.MyNamespace.someProperty = {};

  // etc.


}(jQuery));

大丈夫ですか?

4

2 に答える 2

3

変数の初期化では、グローバルに設定していますMyNamespace(存在する場合)。これはスコープ/分離されていません。

次に、2つの非常に異なるものを参照する$.MyNamespace代わりに参照します。は参照するパラメータであり、グローバルにアクセス可能であり、他のコードから分離されていません。MyNamespace$jQuery

$.MyNamespace他のコードにアクセスできるようにしたいMyNamespace場合、およびこのコードのみにアクセスをスコープしたい場合に使用します。

于 2012-09-28T21:53:22.473 に答える
1

変更されたコード: 2 つの問題があります。

MyNamespace は $ のプロパティです。ウィンドウとドキュメントは関数本体内では使用できません。

;(function($, window, document, undefined){

  $.MyNamespace= $.MyNamespace || {};

  $.MyNamespace.someMethod = function(){
    // code
  };

  $.MyNamespace.someOtherMethod = function(){
    // code
  };

  $.MyNamespace.someProperty = {};

  // etc.


}(jQuery, window, window.document));
于 2012-09-28T21:52:03.670 に答える