Различия в декларации пространства имен JavaScript - PullRequest
1 голос
/ 17 августа 2010

Каковы различия между этими двумя типами объявлений пространства имен? Первый лучше второго или наоборот?

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

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

против

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

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

Ответы [ 2 ]

3 голосов
/ 17 августа 2010

Есть два основных практических различия.Первый не создает никаких дополнительных внешних доступных переменных и не зависит от $, являющегося jQuery вне функции.Вторая создает переменную build и требует, чтобы $ означало jQuery.

2 голосов
/ 17 августа 2010

Оба хороши, но первый, вероятно, лучше, поскольку он позволяет jQuery безопасно работать с другими библиотеками.Он не сталкивается с другими переменными, объявленными как $.

...