Я создаю совершенно новый сайт и структурирую свой javascript таким образом, который, кажется, имеет смысл для меня. Я создал пространство имен сайтов, а также пространство имен виджета/функциональности, которое инкапсулирует методы для этих виджетов/функций. Я охватил каждое пространство имен таким образом, что любая данная страница на сайте может вызывать определенные (общедоступные) методы для создания виджета/функциональности.Структурирование/организация всего сайта javascript
Вот пример моей яваскрипта структуры:
var THESITE = THESITE || (function(){
navigation = function(){
var init = function(){
// do navigation stuff
}
return {
init : init
}
},
widgets = {
widget1 : (function(){
var newWidget = function(){
// do widget1 stuff
}
return {
newWidget : newWidget
}
})(),
widget2 : (function(){
var newWidget = function(){
// do widget2 stuff
}
return {
newWidget : newWidget
}
})(),
widget3 : (function(){
var newWidget = function(){
// do widget3 stuff
}
return {
newWidget : newWidget
}
})();
},
init = function(){
navigation.init();
}
return {
init: init,
navigation: navigation,
widgets: widgets,
}
})();
THESITE.init();
И пример того, как один из этих методов будет называться:
THESITE.widgets.widget3.newWidget();
Является ли это способ структурирования мой Javascript практический/общее?
Да, это распространено, и вот несколько других связанных структур. Преимущество вашего метода заключается в том, что он скрывает что-либо, кроме того, что вы намеренно помещаете в оператор return, это моделирование публичных/частных объявлений. Но это всего лишь симуляция, поэтому часто используются менее строгие структуры. См. Обсуждение в соответствующей теме ниже для ваших вариантов. http://stackoverflow.com/questions/247209/current-commonly-accepted-best-practices-around-code-organization-in-javascript?rq=1 –