¿Cómo configurar correctamente el espacio de nombres y las clases de JavaScript?
Parece que hay muchas formas de configurar una aplicación JavaScript, por lo que es confuso en cuanto a cuál es la mejor o la mejor. ¿Hay alguna diferencia con respecto a las siguientes técnicas o una mejor manera de hacerlo?
MyNamespace.MyClass = {
someProperty: 5,
anotherProperty: false,
init: function () {
//do initialization
},
someFunction: function () {
//do something
}
};
$(function () {
MyNamespace.MyClass.init();
});
De otra manera:
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();
La primera tecnicasiente más como una clase. Estoy viniendo del fondo del lado del servidor si esto hace una diferencia. La segunda técnica parece más redundante y un poco incómoda, pero veo que esto también se usa mucho. ¿Puede alguien ayudar a arrojar algo de luz y aconsejar la mejor manera de avanzar? Quiero crear una aplicación con muchas clases hablando entre ellas.