繁体   English   中英

在单独的 .js 文件中定义的访问函数与 .js 文件

[英]Access function defined in separate .js file from a .js file

我已经看到很多关于将 .js 文件加载到 HTML 文件的问题,我知道该怎么做。 但是,假设我有文件“classlist.js”。 如何在另一个 javascript 文件中使用该 javascript 文件中定义的类? 我一直看到建议使用

<script type="text/javascript" src="filepath"></script>

句法。 但是,当在 .js 文件中使用时,它会在“<”上引发语法错误,因此我认为此代码无效。

那么,如何利用在单独的 .js 文件中定义的 .js 文件中的函数……有效且高效(如果有的话)?

编辑:我将澄清一些未来的事情,因为我对 Javascript 仍然相当陌生,而且看起来还有许多我什至不知道的其他因素在起作用。

我有两个 .js 文件,其中一个声明的类是另一个文件中类的扩展。 我想在网页中使用扩展类,我想我必须将原始类加载到第二个 .js 文件中,然后将该 .js 文件加载到 HTML 文件中。 我并没有完全在 HTML 之外进行编程。

很抱歉有任何误解,希望此线程将来对其他人有所帮助。

假设您在 Web 浏览器中谈论 javascript,那么所有 js 文件都加载在 html 文件中,通常是 index.html。 您需要使用脚本标签在该 html 文件中以正确的顺序加载 javascript,而不是在 javascript 文件中。 所以如果文件 B 需要文件 A 中的东西,你需要先加载文件 A,这意味着将加载文件 A 的脚本标签放在加载文件 B 的脚本标签之前。

两个答案:

非浏览器

如果您在非浏览器环境(NodeJS、RingoJS、SilkJS、Rhino 或其他任何环境)中使用 JavaScript,答案取决于环境——但其中许多使用CommonJS 的require机制 例如:

// Get access to public symbols in foo.js
var foo = require("foo.js");

// Use the `bar` function exported by foo.js
foo.bar();

浏览器

如果您在浏览器中使用 JavaScript,您可以按照处理顺序放置script标签,就像您在 HTML 中引用的那个标签一样(因此,依赖于其他脚本中定义的内容的脚本应包含在它们的脚本之后)依靠)。

如果您想在页面加载时间方面最大限度地提高效率,请将服务器上的脚本组合在一起(可能也缩小/压缩/打包它们)并仅使用一个script标签。

您必须将classlist.js的引用放在您的 HTML 文件(不是您的 Javascript 文件)中,在任何其他需要它的SCRIPT元素之前。 例如,在 'head' 元素中:

<html>
<head>
  <script src="testclass.js"></script>
  <script src="file_using_testclass.js"></script>
  <script>
    var tc = new TestClass();
  </script>
</head>

上面发布的答案应该可以解决问题,但是由于您提到有效地执行此操作,您可以考虑查看基于 javascript 模块的加载程序,例如基于 AMD 的 require js( http://requirejs.org/ )

暂无
暂无

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

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