如何在单独的文件中创建javascript库和;包括「;它在另一个地方吗?
首先是一个警告。主脚本未在网页中运行。我将使用Windows脚本主机在Windows中运行.js文件 问题: 我想创建一个javascript“库”,其中包含许多对象,每个对象都有许多函数。我希望这个库随着时间的推移会变得相当大,并且希望将它保存在一个单独的javascript文件中(我们称之为library.js)。我想从另一个脚本访问Library.js中的对象(我们称之为User.js) 本质上,我正在寻找类似于C/C++“包含”范式的东西如何在单独的文件中创建javascript库和;包括「;它在另一个地方吗?,javascript,include,wsh,windows-scripting,Javascript,Include,Wsh,Windows Scripting,首先是一个警告。主脚本未在网页中运行。我将使用Windows脚本主机在Windows中运行.js文件 问题: 我想创建一个javascript“库”,其中包含许多对象,每个对象都有许多函数。我希望这个库随着时间的推移会变得相当大,并且希望将它保存在一个单独的javascript文件中(我们称之为library.js)。我想从另一个脚本访问Library.js中的对象(我们称之为User.js) 本质上,我正在寻找类似于C/C++“包含”范式的东西 是否有办法在javascript中实现这一点?(
是否有办法在javascript中实现这一点?(请记住,这不是基于web的)这个phpjs实现可能会有所帮助 是我能找到的最接近的。它讨论了.wsf文件,它允许您在一个文件中组合多个脚本(可以用不同的语言编写) 对于你的问题,应该是这样的: user.wsf
<job id="IncludeExample">
<script language="JScript" src="library.js"/>
<script language="JScript">
<![CDATA[
// use your library functions here
]]>
</script>
</job>
可能有更好的方法,但我不是WSH专家。您可以通过使用Windows脚本主机而不是特定的.js或.vbs文件来实现您的目标。有关更多信息,请访问 从链接: Windows脚本(*.wsf)文件是一个文本文件 包含可扩展标记的文档 语言(XML)代码。它包括 为您提供的几个功能 增加了脚本编写的灵活性。 因为Windows脚本文件不是 特定于引擎,它们可以包含 来自任何Windows脚本的脚本 兼容的脚本引擎。他们行动 作为一个容器 您可以使用与.js和.vbs文件相同的语法来计算该文件: wscript.exe myScriptFile.wsf
更新:已更正…我知道这是一个老问题,它已得到回答和接受 我知道.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文件:该解决方案针对浏览器。脚本主机是cscript.exe或wscript.exe,而不是vbscript.exe。这里有一个类似的问题:我尝试了此
includeFile
函数,但不幸的是,此函数中的eval
对文件的其余部分无效。它看起来像eval
只在函数内部工作,没有全局效果。我不得不这样想:eval(includeFile(“something.js”);其中includeFile
返回fileData
值(返回fileData)。