Как правильно настроить пространство имен и классы JavaScript?

Кажется, что существует так много способов настроить приложение JavaScript, что трудно понять, какой из них правильный или лучший. Есть ли разница в приведенных ниже методах или лучший способ сделать это?

MyNamespace.MyClass = {
    someProperty: 5,
    anotherProperty: false,

    init: function () {
        //do initialization
    },

    someFunction: function () {
        //do something
    }
};

$(function () {
    MyNamespace.MyClass.init();
});

Другой способ:

MyNamespace.MyClass = (function () {
    var someProperty = 5;
    var anotherProperty = false;

    var init = function () {
        //do something
    };

    var someFunction = function () {
        //do something
    };

    return {
        someProperty: someProperty
        anotherProperty: anotherProperty
        init: init
        someFunction: someFunction
    };
}());

MyNamespace.MyClass.init();

Первая техника больше похожа на класс. Я исхожу из фона сервера -, если это имеет значение. Второй метод кажется более избыточным и немного неудобным, но я вижу, что он тоже часто используется. Может кто-нибудь помочь пролить свет и посоветовать лучший способ двигаться вперед?Я хочу создать приложение с большим количеством классов, разговаривающих друг с другом.

42
задан Neal 25 July 2012 в 14:22
поделиться