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

Javascript 如何在另一个js文件中使用一个js文件中的函数?,javascript,jquery,Javascript,Jquery,我有两个js文件,其结构可以简化为: js1: js2: 要做到这一点,我必须在全局对象中的js2中声明所有函数,还是有更简单的方法?我当前收到未捕获的引用错误,因为js1找不到js2的函数 这两个脚本文件都包含在页眉中 要做到这一点,我必须在全局对象中声明js2中的所有函数吗 对 或者,至少必须有一个可以访问它们的全局对象(例如,foo.bar.baz.f2) 虽然您的问题的简单答案只是将两个文件连接起来,或者将函数定义为全局变量,或者使用全局名称空间,但我认为在当前javascript开发状

我有两个js文件,其结构可以简化为:

js1:

js2:

要做到这一点,我必须在全局对象中的js2中声明所有函数,还是有更简单的方法?我当前收到未捕获的引用错误,因为js1找不到js2的函数

这两个脚本文件都包含在页眉中

要做到这一点,我必须在全局对象中声明js2中的所有函数吗

或者,至少必须有一个可以访问它们的全局对象(例如,
foo.bar.baz.f2


虽然您的问题的简单答案只是将两个文件连接起来,或者将函数定义为全局变量,或者使用全局名称空间,但我认为在当前javascript开发状态下,提及最流行的解决方案也是合适的

您主要需要阅读更多关于javascript模块的信息(最流行的格式是和),并根据它们构建应用程序

使用诸如或之类的工具,您可能会获得问题的正确解决方案,并主要将功能封装在模块中,如下所示:

/* module f1 ( file f1.js ) */
module.exports = function() { ... }

/* module f2 ( file f2.js ) */
f1 = require('./f1');
f2 = function() { ... /* you can access f1 function here */ };
/* module f1 ( file f1.js ) */
define('f1', function() { ... });

/* module f2 ( file f2.js ) */
define('f2', ['f1'], function(f1) { /* you can access f1 function here */ });
使用AMD格式时,将如下所示:

/* module f1 ( file f1.js ) */
module.exports = function() { ... }

/* module f2 ( file f2.js ) */
f1 = require('./f1');
f2 = function() { ... /* you can access f1 function here */ };
/* module f1 ( file f1.js ) */
define('f1', function() { ... });

/* module f2 ( file f2.js ) */
define('f2', ['f1'], function(f1) { /* you can access f1 function here */ });
稍后在html中,您可以简单地执行以下操作

<script src='requirejs.js'></script>
<script src='f1.js'></script>
<script src='f2.js'></script>
<script>require('f2');</script>

要求('f2');

注意:对于你的问题,这个答案不是最简单的解决方案,它更像是一个正确的解决方案。

只需将js2包含在js1中。@KartikeyaKhosla-这不起作用。它们仍然在不同的范围内,彼此无法访问;请注意,即使没有AMD,它也可以工作,并且可以进一步精简。我可以得到一个简化的示例吗?是:$(函数(){foo={};foo.f2=f2();}
<script src='requirejs.js'></script>
<script src='f1.js'></script>
<script src='f2.js'></script>
<script>require('f2');</script>