Javascript: Подключаем скрипт из другого скрипта. Как работать с модулями
Само по себе динамическое подключение скрипта из скрипта на Javascript несложно, вот законченный пример, здесь мы
загружаем скрипт из файла с именем test.js
, находящегося в текущей папке:
var script = document.createElement ('script'); script.src = 'test.js'; //или полный URL файла js document.getElementsByTagName ('head')[0].appendChild (script); alert('script loaded'); //только для иллюстрации, можно убрать строку
Другое дело, что полезность этого подхода сомнительна - например, просто описать в файле test.js
функцию или глобальную переменную,
а затем использовать их в подключающем скрипте Вы не сможете. Поскольку ни "классов в чистом виде",
ни пространств имён в Javascript нет, программисты просто создают объект и считают его пространством имён.
Примеры Вы можете посмотреть хоть в исходниках популярной библиотеки JQuery.
Приведём и собственный небольшой пример.
Файл lib.js
содержит "ядро" системы:
var lib = { add : function (name, method) { lib[name] = method; } };
Файл functions.js
- это "программный модуль", там описаны реализации функций, в этом листинге функция всего одна, на самом деле
их может быть сколько угодно.
function f1() { return 1; } lib.add ( "f1", f1 );
Файл script.js
- это "реализация", он может использовать функции библиотеки:
var t=lib.f1(); alert (t);
Остаётся всё это загрузить в нужном порядке, вот соответствующий документ HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=Windows-1251" http-equiv="content-type"> <title>Тест</title> </head> <body> <script type="text/javascript" src="lib.js"></script> <script type="text/javascript" src="functions.js"></script> <script type="text/javascript" src="script.js"></script> <noscript><p>Извините, для работы приложения нужен включённый Javascript</p></noscript> </body> </html>
С содержательной точки зрения это мало что даёт, но позволяет придерживаться привычного ООП-программистам стиля разработки.
Пример в архиве ZIP (1 Кб)
11.08.2011, 11:03 [13046 просмотров]