繁体   English   中英

调用位于单独的.js文件中的JavaScript对象类

[英]Calling a JavaScript object class that's in a separate .js file

我创建了一个字符串构建器JavaScript对象,我在项目中使用了许多不同的.js文件。

我可以在一个单独的.js文件中创建这个类,并从实现它的所有其他脚本中调用它,就像一个C#类文件一样吗?

这是可能的,还是我继续复制并粘贴到使用它的每个.js文件的底部?

是的,这应该不是问题。 只需在html页面中以正确的顺序包含.js文件即可。

如果您在主HTML页面中将文件与其他js一起包含,则可以根据需要使用“类”:

<script src="js1.js" type="text/javascript"></script>
<script src="js2.js" type="text/javascript"></script>

在上面的示例中,您现在可以使用js2.js中的代码从js1.js实例化对象的新实例。 要使用纯javascript执行此操作,您必须将脚本标记添加到DOM,或使用AJAX获取脚本文件和eval()它。

// Create a <script> element
var scriptEl = document.createElement("script");
scriptEl.src = "js2.js";
scriptEl.type = "text/javascript";

// Append it to the <head>
document.getElementsByTagName("head")[0].appendChild(scriptEl);

要完全正确,重要的不是包含的顺序,而是执行代码的顺序。 在大多数情况下,Andy和Segfault的说明都很好,但有时候在消费者不足之前包括类文件。 例如,如果你使用ExtJS,你碰巧在onReady处理程序中定义你的类,如下所示:

Ext.onReady(function() {
  myClass = ...
}.bind(this));

然后,当你的第二个src文件被包含在页面中并执行时,它将不会被执行。

我知道,这个例子有点牵强:)但只要确保你的代码以正确的顺序执行,而不仅仅包含在正确的顺序中。

我遇到了这个问题,我想添加一些东西(几年前可能不存在)。

即使你认为你可以将每个脚本添加到你的“index.html”,这不是一个非常漂亮的做法(imho)。 特别是如果你认为你可能想要写一个扩展(〜框架)。 你不想用他必须添加到他的代码中的一堆脚本标签来惹恼用户。 你想要的是这样的单行:

<script src="yourFramework" (...) />

但是,通过使用RequireJS,您可以实现这一目标。 您可以自由地分离代码,而“您的用户”仍然无需在他的“脚本部分”中添加小说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM