Подтвердить что ты не робот

Как организовать JS-функции в нескольких файлах

Исходя из классического фона ООП, я недавно начал больше узнавать о JavaScript. Однако есть одна вещь, которую я не могу понять:

В классических языках ООП вы обычно создаете отдельный файл для каждого класса, поскольку это упрощает ведение вашего кода. У JS нет реальных классов, и, насколько я знаю, также нет реального прямого способа включить другой JS файл из одного файла. Однако, когда вы работаете с командой над крупным проектом JS, вы, вероятно, захотите разделить проект на несколько файлов. Как это делается? Что вы вкладываете в эти файлы и как их правильно загружать?

4b9b3361

Ответ 1

Мне нравится ваш вопрос. Я пишу свой JavaScript очень Object Oriented и сохраняю мои конструкторы объектов в своих собственных файлах. Я бросаю все свои .js файлы в каталог, который я могу организовать в подкаталоги любым способом. Затем я запускаю "make" script. Ниже приведено Bash script. Я работаю на Linux-машине, поэтому Bash scripting - естественное решение для меня любого, кто работает в Linux.

#!/bin/bash

echo '' > temp0.js 
find ./bin/external -name \*.js -exec cat {} >> temp0.js \;

echo ''> temp1.js
echo '(function(){' > temp1.js
find ./bin/prop -name \*.js -exec cat {} >> temp1.js \;
echo '})();' >> temp1.js

cat temp0.js temp1.js > script.js
rm temp1.js temp0.js

Простите меня, если этот Bash скриптинг является любительским. Я с готовностью признаюсь в сценариях Bash, я просто взламываю все, что работает, но мне нравится, чтобы мой JavaScript был чистым, организованным и объектно-ориентированным.

Этот Bash script переходит в каталог рядом с каталогом "bin", который содержит все javascript.js файлы. Там подкаталог "внешний" содержит различные заимствованные скрипты, такие как JQuery. Я помещаю свои собственные .js-скрипты в папку под названием "prop" в приведенном выше примере. Bash script получает все эти скрипты и объединяет их. Он также переносит мои собственные файлы prop в анонимной функции, чтобы дать им частное пространство имен (sortof).

Я предполагаю, что это не совсем то, что вы хотели - Java, но я думаю, что этот вариант - это то, что нам нужно делать в JavaScript.

Ответ 2

Модель прототипов JavaScripts - очень OOP, и вы можете разбить код на столько файлов, сколько хотите. Существует несколько различных способов загрузки зависимостей, RequireJS, который является популярным.

Ответ 3

Вам нужно будет сегментировать код любым способом, который имеет смысл для вашего проекта.

Что касается того, как включать скрипты, это сложнее. Самый простой способ - просто добавить несколько файлов JavaScript, последовательно вызываться из HTML (<script src="..."></script><script src="..."></script>) или с менеджером зависимостей или загрузить script, например Yepnope или RequireJS..

Однако, если вы хотите включить только один script из своего HTML, вы можете либо объединить файлы (используя конструкцию script с Ant или что-то подобное) или взломать Javascript, чтобы включить другие сценарии, описанные здесь: Как включить файл JavaScript в другой файл JavaScript?

Ответ 4

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