モジュールの書き方

1226 ワード

モジュールとは、特定の機能を実現する方法のことです.
1.原始的な書き方
function m1(){
  //...
}

function m2(){
  //...
}
上の関数m 1()とm 2()は、モジュールを構成します.使う時は、直接呼び出してもいいです.
このようなやり方の欠点は明らかです.グローバル変数が汚染されています.他のモジュールと変数名が衝突しないことは保証できません.モジュールメンバーの間に直接関係が見えません.
2.対象の書き方
var module1 = {

    _count : 0,

    m1 : function (){
      //...
    },

    m2 : function (){
      //...
    }

  };
上の関数m 1()とm 2()は、すべてmodule 1オブジェクトにパッケージされています.使うときは、このオブジェクトの属性を呼び出します.
module1.m1();
ただし、このような書き方では、モジュール全員が暴露され、内部状態は外部で書き換えられます.例えば、外部コードは内部カウンタの値を直接変更することができます.
module1._count = 5;
3.すぐに関数の書き方を実行します(クローズド)
「即時実行関数」を使用して、プライベートメンバーを露出しない目的を達成できます.
var module1 = (function(){

    var _count = 0;

    var m1 = function(){
      //...
    };

    var m2 = function(){
      //...
    };

    return {
      m1 : m1,
      m2 : m2
    };

  })();
上記の書き方では、外部コードは内部の_count変数を読み込めません.
4.モジュールへの参照
var module1 = (function ($, YAHOO) {

    //...

  })(jQuery, YAHOO);
ステップ:    http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_definition.html                http://www.ruanyifeng.com/blog/2012/11/require_js.html