javascriptのモジュール開発


jsコードがますます多くなって、どんどん太ってきて、共同開発の時に大域変数の衝突などがよく現れます.これらの問題が発生した時、jsのモジュール開発を考慮して、以下に簡単にモジュール開発の基礎というものを紹介します.
   1、モジュール開発については、直ちに関数を実行しなければなりません.何が即実行関数ですか?以下の例を見てください.
/**
 *                
 * (function(){}());
 * (function(){})();
 */
(function() {
    alert(1);
})();
2、これは何のメリットがありますか?もちろん全体の汚染を防止します.つまり、関数内に宣言された変数は外部からアクセスされません.例えば、
var module = (function() {
    var module = {};
    //    
    var user = '  ';
    function _private() {
        alert('    ');
        //    
    }
    module.name = user+'123';
    module.pubFn = function() {
        _private();
        return '    ';
    };
    return module;
}());
alert(module.user); //undefined
alert(module.name); //  123
alert(module.pubFn()); //    、    
3、グローバル変数をどのように導入するか、これは方法があります.
var module = (function($) {
    $.id = 1;
}(window));
alert(id); //1
4、拡張モジュール
var module = (function($) {
    $.extend = function() {
        alert('extend');
    }
                         
    return $;
}(module || {})); //    ,        module,   '{}'       
module.extend(); //extend
5、モジュールカバー防止
(function($) {
    $.extend = function() {
        alert('extend');
    }
}(window.module = window.module || {}));
6、サブモジュール
var module = (function($) {
    $.extend = function() {
        alert('extend');
    }
                    
    return $;
}(module || {}));
//   
module.child = (function() {
    var c = {};
    c.name = '  ';
    c.fn = function() {
        console.log(this.name);
    }
    return c;
})();
module.child.fn();