JavaScript命名空间声明差异

JavaScript命名空间声明差异,javascript,jquery,namespaces,Javascript,Jquery,Namespaces,这两种类型的名称空间声明之间有什么区别?第一个比第二个好还是第二个好 (function($) { $.build = { init: function() { this.attachEvents(); } } } $(document).ready(function() { $.build.init(); }); })(jQuery); 对 var build = { i

这两种类型的名称空间声明之间有什么区别?第一个比第二个好还是第二个好

(function($)
{
    $.build = {
        init: function()
        {
            this.attachEvents();
        }
    }
}

$(document).ready(function() {
        $.build.init();
    });
})(jQuery);

var build = {
    init: function(){
        this.attachEvents();
    }
};

$(document).ready(function() {
        build.init();
});

有两个主要的实际差异。第一种方法不创建额外的外部可访问变量,并且不依赖于$jQuery在函数外部。第二种方法创建一个构建变量,并要求$mean jQuery。

有两个主要的实际区别。第一种方法不创建额外的外部可访问变量,并且不依赖于$jQuery在函数外部。第二个创建了一个构建变量,需要$mean jQuery。

两者都很好,但第一个可能更好,因为它允许jQuery安全地使用其他库。它不会与任何其他声明为$的变量冲突。

这两个变量都很好,但第一个可能更好,因为它允许jQuery与其他库保持安全。它不会与声明为$的任何其他变量冲突