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

时间:2010-02-27 12:01:11

标签: javascript

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

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

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

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

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

<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);

答案 2 :(得分:1)

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

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

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

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

答案 3 :(得分:0)

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

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

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

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