首先,请注意。主要脚本未在网页中运行。我将使用Windows脚本宿主在Windows中运行.js文件。
问题: 我想创建一个包含许多对象的javascript“库”,每个对象都有许多功能。我希望这个库会随着时间的推移变得相当大,并希望将它保存在一个单独的javascript文件中(我们称之为 Library.js )。我想从另一个脚本中访问 Library.js 中的对象(让我们称之为 User.js )。
本质上,我正在寻找类似于C / C ++“包含”范例的东西。
有没有在javascript中实现这个? (请记住,这不是基于网络的)
答案 0 :(得分:20)
This page right here是我能找到的最接近的。它讨论了.wsf文件,它允许您将多个脚本(可以用不同语言编写)组合在一个文件中。
对于你的问题,它应该是这样的:
<强> user.wsf 强>
<job id="IncludeExample">
<script language="JScript" src="library.js"/>
<script language="JScript">
<![CDATA[
// use your library functions here
]]>
</script>
</job>
可能有更好的方法,但我不是WSH专家。
答案 1 :(得分:13)
我知道这是一个老问题,已得到回答和接受。
我知道.WSF文件及其工作原理;他们服务于此目的。
但是,我也发现在WSH中运行的纯.js文件中执行“包含”很方便。这是我的解决方案。
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文件:
How do I include a common file in VBScript (similar to C #include)?
答案 2 :(得分:1)
您可以使用Windows Scripting Host而不是特定的.js或.vbs文件来实现目标。有关详细信息,请访问the MSDN site。
从链接:
Windows脚本(* .wsf)文件是一个文本 包含可扩展标记的文档 语言(XML)代码。它融合了 为您提供的几个功能 增加脚本灵活性。 因为Windows脚本文件不是 特定于引擎,它们可以包含 来自任何Windows脚本的脚本 兼容的脚本引擎。他们行事 作为一个容器。
您可以使用与.js和.vbs文件相同的语法来处理文件:
wscript.exe myScriptFile.wsf
更新:更正指出......
答案 3 :(得分:-1)
也许这个phpjs实现可以提供帮助。