Como configurar o namespace JavaScript e as classes corretamente?
Parece que há muitas maneiras de configurar um aplicativo JavaScript, por isso é confuso quanto ao que é correto ou melhor. Há alguma diferença nas técnicas abaixo ou uma maneira melhor de fazer isso?
MyNamespace.MyClass = {
someProperty: 5,
anotherProperty: false,
init: function () {
//do initialization
},
someFunction: function () {
//do something
}
};
$(function () {
MyNamespace.MyClass.init();
});
Outra maneira:
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();
A primeira técnicasente mais como uma aula. Eu estou vindo do fundo do lado do servidor se isso faz diferença. A segunda técnica parece mais redundante e um pouco estranha, mas vejo que isso também é muito usado. Alguém por favor pode ajudar a esclarecer e aconselhar a melhor maneira de avançar? Eu quero criar um aplicativo com muitas classes conversando entre si.