如何在 js 文件中使用另一个 js 文件中的函数
How to use functions from another js file in a js file?
我正在编写一个加载两个js文件的HTML页面。这两个js文件都使用函数a(),所以我想如果我能创建第三个js文件并将相同的函数a()扔到该文件中,浏览器可能会加载得更快,因为它不必加载相同的函数两次。那么有人可以告诉我我是否走在正确的轨道上,以及如何从不同的js文件加载函数吗?
谢谢!
长答案 - 您的所有代码共享相同的全局范围。
因此,如果您在文件的顶级范围内定义函数a
- 则无需将a
包含在每个函数中。当然,也有例外。
相反 - 仅在需要时才包含它实际上对您有益,在通常情况下 - 因为每个组合文件都会更小,因此需要更短的下载时间,从而使您的网站"更快"。
您可能会从以下阅读中受益:
范围:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions_and_function_scope
http://coding.smashingmagazine.com/2009/08/01/what-you-need-to-know-about-javascript-scope/
相关模块模式:
http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html
AMD 规范的常见实现:
http://addyosmani.com/writing-modular-js/
http://requirejs.org/docs/whyamd.html
所以有人可以告诉我我是否走在正确的轨道上
你可能是。如果函数绝对巨大,它可能会提高性能(就不必下载函数两次而言;对执行时间的影响可以忽略不计),但有更好的理由将其拆分到一个单独的文件中:
- 如果需要更改,只需更改一次。
- 浏览器可以单独缓存它。
至于在浏览器JavaScript中加载它,只需为其添加另一个<script>
元素:
<script src="a.js"></script> <!-- Contains a() -->
<script src="b.js"></script> <!-- Uses a() -->
<script src="c.js"></script> <!-- Also uses a() -->
要完成您要查找的内容,请将函数 a() 移动到其自己的文件 (3) 中,并将其从文件 1 和 2 中删除。 然后,在 HTML 中引用 javascript 文件时,请先包含第 3 个文件。
需要注意的是,您要确保函数 a() 完全相同。
为了获得最佳性能,您希望将所有JS合并到一个文件中,然后进行缩小。一个好的起点是使用 Chrome 的页面速度(F12>页面速度标签)
- 从文本文件js中读取列表
- 当我用ctrl+p搜索时,为什么要在谷歌chrome上使用inspect来调试缺少显示文件js
- 获取用于外部JavaScript文件(.js)的代码提示
- 如何将Javascript文件(.js文件)放在web服务器中
- 如何将 JavaScript 文件(.js 文件)添加到 C# 项目并从 C# 代码调用 JavaScript 方法
- 在 Node 中包含 javascript 文件.js无需 require('.') ing
- 如何使用jquery显示多个文件.多文件.js
- 使用 PDF 打开 PDF 文件.js而不将文件作为查询字符串传递
- 转换颜色十六进制值以用于三个 JSON 文件.js
- 如何使用 jQuery 选择多个文件.多文件.js插件?使用单个关闭按钮一次选择多个文件
- 如何在 Gulp 任务中间添加 CSS 文件.js
- 如何从Dropzone上传和删除文件.js
- 如何在视频中添加视频文件.js 4.2.1.
- 从快速节点下载文件.js具有 JWT 授权
- 访问 JavaScript 文件.js中的 C# 变量
- 在节点中热重载外部 js 文件.js如果文件有任何更改
- 如何在一台服务器中运行不同的.js文件.js NODE JS中的文件
- 如何在多文件.js中上传文件时检查文件扩展名
- 将文件.js中的var导入到模块joomla的模板中,并使用后台进行修改
- 在path项目中编写文件js脚本