Jak poprawnie skonfigurować przestrzeń nazw i klasy JavaScript?
Wygląda na to, że istnieje tak wiele sposobów na skonfigurowanie aplikacji JavaScript, że jest ona myląca co do tego, która z nich jest poprawna lub najlepsza. Czy są jakieś różnice w stosunku do poniższych technik lub lepszy sposób?
MyNamespace.MyClass = {
someProperty: 5,
anotherProperty: false,
init: function () {
//do initialization
},
someFunction: function () {
//do something
}
};
$(function () {
MyNamespace.MyClass.init();
});
Inny sposób:
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();
Pierwsza technikaczuje bardziej jak klasa. Przychodzę z tła po stronie serwera, jeśli to robi różnicę. Druga technika wydaje się bardziej zbędna i nieco niezręczna, ale widzę, że to też jest często używane. Czy ktoś może pomóc rzucić trochę światła i doradzić, jak najlepiej iść do przodu? Chcę stworzyć aplikację z wieloma zajęciami rozmawiającymi ze sobą.