JavaScript命名空间声明差异

时间:2010-08-17 04:08:40

标签: javascript jquery namespaces

这两种类型的命名空间声明有什么区别?第一个比第二个好吗,反之亦然?

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

两者都很好,但第一个可能更好,因为它允许jQuery与其他库安全地玩。它不会与声明为$。

的任何其他变量发生冲突