1

私は通常、コードで無名関数アプローチを使用します。

    (function($,NS){

    window[NS] = $.extend((window[NS] || {}), {

        global : 31,

        init : function(){
            var $d = $(document);

            $.on('click', 'a', $.proxy(this.clickHandler, this));
        },

        clickHandler : function(e){
            console.log('etc');
        }

    });

}(jQuery, "AAABBBCCC"));

しかし、私は最近、特定の名前空間をウィンドウ オブジェクトに追加し、グローバル名前空間を保護する、はるかに簡単な方法に出くわしました。

var AAABBBCCC = window.AAABBBCCC || {

    global : 31,

    init : function(){
        var $d = $(document);

        $.on('click', 'a', $.proxy(this.clickHandler, this));
    },

    clickHandler : function(e){
        console.log('etc');
    }

};

私は両方のアプローチをテストしましたが、どちらもウィンドウ オブジェクトに AAABBBCCC オブジェクトを追加しているようです。違いがわかりません。

これら 2 つのアプローチの違いと、それぞれの長所と短所を教えてください。

4

1 に答える 1