Что это хороший способ, чтобы выполнить рефакторинг растет число функции JavaScript/JQuery с?


Я работаю над проектом, в котором мы делаем много пользовательских javascript и особенно jquery, над проектом в стиле mvc.

Единственная проблема заключается в том, что я продолжаю добавлять все больше и больше глобальных функций/переменных, и они накапливаются. У меня есть несколько файлов, но я не знаю, как разделить некоторые из них на отдельные файлы.

Я думал о том, чтобы составить некоторые из этих функций и глобальных переменных в объекты, но синтаксис объектов в javascript кажется мне немного неудобным (из-за отсутствия классических классов). Хотя, если бы у меня был хороший пример для подражания, возможно, я смог бы прийти в себя.

Как вы справляетесь с проектом, в котором глобальные функции javascript и переменные начинают накапливаться подобным образом?

4 6

4 ответа:

Очень простой способ сложить кучу глобальных переменных и функций в один глобальный объект:

// Awful pile of globally-scoped names
var foo = 1
var bar = 2
function go = function(){
    console.log('Yeehaw!');
}


// Instead, just dump everything into a global-level object
var MyApp = {
    foo: 1,
    bar: 2,
    go: function(){
        console.log('Yeehaw!');
    }
}  

// Now access stuff like this
console.log(MyApp.foo);
console.log(MyApp.bar);
MyApp.go();

Для" простых " переменных и функций верхнего уровня я могу рекомендовать это. Есть много улучшений, которые можно сделать для этого, но они, вероятно, попадут в категорию преждевременных оптимизаций; это отличный первый шаг.

Видеоролики Крокфорда на Yui theater являются хорошим примером того, как настроить пространства имен JavaScript, среди прочего.

Вы можете разбить их аналогично тому, что делает jquery.ui делает... по категориям или по действию / контролю

Пример:

Эффекты.слепой.js
эффекты.подпрыгивать.js
пользовательский интерфейс.аккордеон.js

Могут ли они быть разбиты на элементы управления, с которыми они имеют дело?

Или тем, что они делают?

Просто несколько предложений...

Если вы работаете с jQuery, первый способ организовать ваш код-это построить Плагины jquery:

Http://docs.jquery.com/Plugins/Authoring

Http://www.learningjquery.com/2007/10/a-plugin-development-pattern

Как вы упомянули mvc, существуют различные реализации javascript, но я не уверен, что они очень популярны: jamal, javascript mvc,

Http://jamal-mvc.com

Http://javascriptmvc.com