我如何在另一个js文件中使用一个js文件中的函数
How do I use a function from one js file inside another js file?
我在一个结构中有两个js文件,可以简化为:
js1:
$(function() {
function f1 {
f2();
}
});
js2:
$(function() {
function f2() {
}
});
我是否必须在js2的全局对象中声明我的所有函数才能做到这一点,或者是否有更简单的方法?我目前得到未捕获的引用错误,因为js1找不到js2的函数。
两个脚本文件都包含在页头中
我是否必须在一个全局对象中声明js2中的所有函数来做到这一点
是的
或者,至少,必须有一个全局对象,通过它可以访问它们(例如foo.bar.baz.f2
)。
var foo = {};
$(function() {
function f2() {
}
foo.bar = { baz: { f2: f2 } };
});
虽然您的问题的简单答案只是连接两个文件或将函数定义为全局变量或使用全局命名空间,但我认为提到当前javascript开发状态中最流行的解决方案也是合适的。
主要是你需要阅读更多关于javascript模块(最流行的格式是AMD和CommonJS),并根据它们构建你的应用程序。
使用工具,如browserify或需求,你可能会得到你的问题的适当解决方案,主要包装你的功能在模块中,像这样:
/* module f1 ( file f1.js ) */
module.exports = function() { ... }
/* module f2 ( file f2.js ) */
f1 = require('./f1');
f2 = function() { ... /* you can access f1 function here */ };
和AMD格式看起来像这样:
/* 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>
:这个答案不是你问题的最简单的解决方案,它更像是正确的解决方案
相关文章:
- JS文件的路径正在消失
- 我的外部js文件无法加载
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 动态加载和卸载js文件
- 如何将变量传递到另一个js文件
- 如何将所有JS文件连接到一个文件夹中
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 如何将模板中的标记脚本移动到.js文件中
- 什么's是连接供应商js文件的最佳方式
- 如何在定义js文件后为外部javascript文件设置变量
- 如何在JS文件中获取资源(.resx)字符串
- 将*.js文件的内容放入Object中
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 如何使用Gmail运行.js文件
- 如何定义一个模块并使用它来分离js文件
- Angular JS文件上传到托管服务器
- 如何引用HTML中节点模块中的js文件
- 如何将JS文件从其他文件夹链接到页面