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

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

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

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

В сущности, я ищу что-то похожее на парадигму "включить" C/С++.

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

4b9b3361

Ответ 1

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

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

user.wsf

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

Там могут быть лучшие способы, но я не эксперт WSH.

Ответ 2

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

Я знаю о файлах .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 (аналогично С#include)?

Ответ 3

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

Из ссылки:

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

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

wscript.exe myScriptFile.wsf

ОБНОВЛЕНО: указана коррекция...