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

Переделывать JS или нет?

Такие дела.

Вот уже почти первый релиз проекта и я понял, что дальше я не смогу поддерживать проект из-за модульной системы скриптов (через browserify). Попробовал в первый раз, сначала подумал, что крутая вещь, сейчас понял - хрень для аутистов.

И встал на моем пути вопрос по простой теории JS, который на практике проверять немного не прагматично (переделка достаточно масштабная будет, не хочется чтоб все было зря).

Вопрос: если я пропишу все классы, а потом вызову их в window.onload, они будут видны друг другу вне зависимости от последовательности вызова или последовательность все же будет влиять на работу?

Например, есть класс модального окна и запроса постов. Они оба используют код друг друга.
Если я сначала инициализирую класс модального окна, а потом класс запроса постов, смогу ли я из второго использовать методы и свойства первого? Или возникнет ошибка?
  • Вопрос задан
  • 231 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
AMar4enko
@AMar4enko
Проверьте в песочнице, чем проблема-то? Использовать можно по-разному. Например так:
// Модуль 2
window.Module2 = {
  bar: function() {
    window.Module1.foo(); 
  }
};

// Модуль 1
window.Module1 = {
  foo: function() {}
};

А можно так
// Модуль 2
var module1 = window.Module1;
window.Module2 = {
  bar: function() {
    module1.foo(); 
  }
};
// Модуль 1
window.Module1 = {
  foo: function() {}
};

Результаты, очевидно, будут разные
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DIITHiTech
@DIITHiTech
Fullstack javascript developer
сначала подумал, что крутая вещь, сейчас понял - хрень для аутистов.

:)) может более вероятный расклад, что нынче такой программист пошел, что уже и погуглить нечто вроде "browserify circular dependencies" не может? Многие сборщики умеют разруливать круговые ссылки (которых по возможности нужно всячески избегать), как там дело сейчас в browserify гугл ответит, если что куча других сборщиков типа rollup.js где с этим все в порядке.
Ответ написан
Ваш ответ на вопрос

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

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