如何使用js文件中另一个js文件的函数?

时间:2014-03-31 02:55:28

标签: javascript

我正在编写一个加载两个js文件的HTML页面。两个js文件都使用函数a(),所以我想如果我可以创建第三个js文件并将相同的函数a()放入该文件中,浏览器可能加载速度更快,因为它不需要加载相同的功能两次。那么有人可以告诉我,我是否正确的方法,以及如何从不同的js文件加载函数?

谢谢!

3 个答案:

答案 0 :(得分:2)

答案很长 - 您的所有代码都拥有相同的全局范围。

因此,如果您在文件的顶级范围内定义函数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

答案 1 :(得分:2)

  

有人可以告诉我,如果我在正确的轨道上谈论这个

你可能会。如果该函数绝对是巨大的,它可能提高性能(无需下载函数两次;对执行时间的影响可以忽略不计),但有更好的理由将其分解为单独的文件:

  • 如果您需要更改,只需更改一次。
  • 浏览器可以单独缓存它。

至于在浏览器JavaScript中加载它,只需为其添加另一个<script>元素:

<script src="a.js"></script> <!-- Contains a() -->
<script src="b.js"></script> <!-- Uses a() -->
<script src="c.js"></script> <!-- Also uses a() -->

答案 2 :(得分:1)

要完成您要找的内容,请将函数a()移动到自己的文件(3)中,然后将其从文件1和文件中删除。 2.然后在HTML中引用您的javascript文件时,首先包含第3个文件。

有一点需要注意,你要确保函数a()完全相同。

为获得最佳性能,您希望将所有JS组合到一个文件中然后缩小。一个好的起点是使用Chrome的Page Speed(F12&gt; Page Speed标签)