Основано на решении Томаса - вот похожий, но более модульный подход.Сначала скрипт для вызова:
/* include.js */
(function () {
var L = {/* library interface */};
L.hello = function () {return "greetings!";};
return L;
}).call();
Затем в вызывающем скрипте:
var Fs = new ActiveXObject("Scripting.FileSystemObject");
var Lib = eval(Fs.OpenTextFile("include.js", 1).ReadAll());
WScript.echo(Lib.hello()); /* greetings! */
Библиотеки, определенные таким образом, не производят и не полагаются на какие-либо значения, но eval
вернет любое значение, полученное от окружающей анонимной функции в библиотеке.