Как я могу создать библиотеку javascript в отдельном файле и “включить” ее в другой?

StackOverflow https://stackoverflow.com/questions/928237

Вопрос

Во-первых, одно предостережение.Основным сценарием является не запускается на веб-странице.Я буду запускать файл .js в Windows с помощью Windows Script Host.

В чем проблема: Я хотел бы создать "библиотеку" javascript, содержащую ряд объектов, каждый из которых обладает рядом функций.Я ожидаю, что со временем эта библиотека станет довольно большой, и хотел бы сохранить ее в отдельном файле javascript (назовем его Library.js).Я хотел бы получить доступ к объектам из Library.js из другого скрипта (давайте назовем его этот User.js).

По сути, я ищу что-то похожее на парадигму C / C ++ "include".

Есть ли способ реализовать это в javascript?(Помните, что это не веб-приложение)

Это было полезно?

Решение

Эта страница прямо здесь это самое близкое, что я смог найти.В нем говорится о файлах .wsf, которые позволяют вам объединять несколько сценариев (которые могут быть написаны на разных языках) в одном файле.

По вашему вопросу это должно быть что-то вроде:

пользователь.wsf

<job id="IncludeExample">
   <script language="JScript" src="library.js"/>
   <script language="JScript">
      <![CDATA[
      // use your library functions here
      ]]>
   </script>
</job>

Возможно, есть способы получше, но я не специалист по WSH.

Другие советы

Я знаю, что это старый вопрос, и на него был дан ответ, и он был принят.

Я знаю о файлах .WSF и о том, как они работают;они служат поставленной цели.

Тем не менее, я также обнаружил, что удобно выполнять "включение" из чистого файла .js, который выполняется в WSH.Вот мое решение для этого.

    function includeFile (filename) {
        var fso = new ActiveXObject ("Scripting.FileSystemObject");
        var fileStream = fso.openTextFile (filename);
        var fileData = fileStream.readAll();
        fileStream.Close();
        eval(fileData);
    }

С определением этой служебной функции я могу сделать это из модуля javascript:

includeFile("externalFile1.js");
includeFile("externalFile2.js");
includeFile("etc.js");

...и тогда я могу вызвать любую из функций или пощекотать любую из переменных, определенных в этих модулях.

Аналогичный метод работает с файлами .vbs:
Как мне включить общий файл в VBScript (аналогично C #include)?

Вы можете достичь своей цели, используя узел сценариев Windows вместо конкретного файла .js или .vbs.Более подробную информацию можно найти по адресу сайт MSDN.

По ссылке:

Файл сценария Windows (*.wsf) представляет собой текстовый документ, содержащий расширяемую разметку Код на языке XML.Он включает в себя несколько функций, которые предлагают вам повышенную гибкость написания сценариев.Поскольку файлы сценариев Windows не зависят от движка, они могут содержать сценарий из любого скрипта Windows совместимого скриптового движка.Они действуют как контейнер.

Вы бы назвали файл, используя тот же синтаксис, что и файлы .js и .vbs:

wscript.exe Файл myScriptFile.wsf

ОБНОВЛЕННЫЙ:Исправление принято к сведению...

Возможно, эта реализация phpjs могла бы помочь.

http://phpjs.org/functions/include:433

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top