Задать вопрос
@Sergey750il

В какой последовательности пишете JavaScript код?

На сколько мне известно с целью понятности кода не рекомендовано использовать анонимные функции. Но в какой последовательности правильно писать функции и включать их допустим в цикл? Правильнее сначала написать все функции в начале документа, а потом уже их инициализировать или допустим над каждым циклом создавать функцию и затем ее уже включать в цикл?
Из личного опыта очень неудобно когда функция описана в начале документа, а включается в середине или ближе к концу.
  • Вопрос задан
  • 723 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
Код должен читаться как рассказ — сверху вниз. За каждой функцией должны следовать функции следующего уровня абстракции. Это позволяет читать код, последовательно спускаясь по уровням абстракции в ходе чтения списка функций.

Это выдержка из «Чистого кода» Мартина.

Сначала идет функция с высоким уровнем абстракции. В ней вызываются функции с меньшей абстрактностью. Эти вызываемые функции описываются следом за вызывающей.
Ответ написан
Комментировать
PretorDH
@PretorDH
HTML5, CSS3, PHP, JS - люблю в чистом виде.
Правильные вопросы задаёте...

Во-первых: Последовательность в Java Script не важна, но нужно понимать ход выполнения. Например:
function Mun(a){ return a };
  ( function(a){ console.log(a+' пошел'); } )( Mun('Первый') )
  /* Результат сразу же - Первый пошел */
  /* Мы создали функцию и выполнили её */

  function MunGo(a){ console.log(a+' ушел'); };
  function Mun(a){ return 'Не '+a };
  MunGo(Mun('Первый'));
  /* Выдаст - Не Первый ушел. */


Во-вторых: Понимайте контекст описаной функции, и не вызывайте её из друго контекста.
... /* продолжая верхний пример*/ 
    (  function(a) {
          var Mun = function(a){ return a+' и третий'};
          MunGo ( Mun(a) );      /* Выдаст - Второй и третий ушел */
     }
   ) ( 'Второй');
  MunGo( Mun ('Второй') );    /* Выдаст - Не Второй ушел */


В-третьих:
Цикл должен быть максимально простым. Вынесите из него все возможное и не возможное. Это его сильно ускорит. Не только объявления но даже вызовы функций, создание нод, даже обращение к полям объектов старайтесь сделать вне цикла. Внутри цикла опперируйте только переменными локального контекста.

В-чертвертых: Используйте анонимний контекст для всего своего кода, а взаимодействие между разными анономными контекстами делайте через события.
Ответ написан
@vilgeforce
Раздолбай и программист
Я вот любой код пишу от начала к концу этого самого кода.
"написать все функции в начале документа, а потом уже их инициализировать " - это как? В JS есть инициализация функций?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы