Беспорядочный код JavaScript в больших проектах с jquery и т. Д.? - PullRequest
6 голосов
/ 27 сентября 2010

Вызов там гуру javascript.В основном мой вопрос касается того, как вы структурируете свой код, как визуально, так и для функциональности. Например, вы все оборачиваете в объекты, используя эту структуру:

var myapp={
  binds:function(){
    //put some event listeners for jquery etc...
  },
  otherfunc:function(){
   //do some other thing
  },
  init:function(){
   //call myapp.binds and other functions and other stuff to intialize your app.
  }
};

Тогда, наконец,

$(document).ready(myapp.init);

с такой структурой, я думаю, что JSLint жалуется, не так ли?Какие плюсы и минусы в использовании такой структуры или в целом есть лучший способ структурировать ваш код?Следуете ли вы определенному шаблону от $(document).ready(call) до помещения всех слушателей событий и «инициализации» своего приложения, используете ли вы отдельные объекты для методов и переменных?

Я также думаю, что «визуально», если у вас оченьВ большом веб-приложении эта структура в конечном итоге выглядит очень грязно, но, может быть, это просто я, я не знаю, любой вклад приветствуется.

Ответы [ 3 ]

6 голосов
/ 27 сентября 2010
Using Inheritance Patterns to Organize Large jQuery Applications

объясните подробно и с лучшей практикой Алекса

http://alexsexton.com/?p=51

это очень очень хорошо объяснить, должны видеть

другие ссылки

1 голос
/ 27 сентября 2010

Не имеет большого значения, как вы структурируете свой код, если вы следуете основным правилам программирования, которые ваш учитель считает:

  1. Не пишите повторяющийся код
  2. Функция должна выполнять 1 и только 1 вещь
  3. Документируйте свой код
  4. Некоторые другие мелочи, но в основном все вышеперечисленное ... ох, да здравствует здравый смысл
0 голосов
/ 27 сентября 2010

Единственная ошибка, которую вы получаете от этого - «подразумеваемая глобальная».Вы можете избавиться от предупреждения для документа, используя вместо этого this.document (так как окно является контекстом).Подразумеваемое глобальное значение для $ останется, если вы не вставите в исходный код jQuery (затем gl со всеми ошибками в этом).

Я верю JSLint - многоВ больших проектах я склонен делать объектные литералы, как вы делали выше, но я использую шаблон модуля для защиты объектов:

var myapp = (function () {
    var secret_stuff, public_stuff;
    return {
        stuff: public_stuff
    }
}());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...