javascript - 您可以或应该使用委托(函数指针)吗?
问题描述
这可能是基本的,但由于我是新手,所以我不明白我是否做错了——这是一种不好的做法。假设我有 3 个JS
文件:
a.js
b.js
sdk.js
说那sdk.js
是一些 SDK,我想从不同的js
文件(例如a
或b
.
要走的路是直接sdk.js
从任何其他文件中调用函数吗?这对我来说似乎没有封装,但如果没有面向对象的编程,我找不到另一种方法。
解决方案
有几种方法可以调用另一个文件中的函数。
1) 原生解决方案
在您的 HTML 文件中,确保首先加载您的<script>
标签导入,如下所示sdk.js
<script src="./sdk.js/"></script>
<script src="./a.js/"></script>
<script src="./b.js/"></script>
只要sdk.js
在全局命名空间中声明函数,任何加载的文件都应该可以访问它
2) ES6
如果您可以使用 ES6 功能(例如通过 babel 或 webpack),那么您的其他脚本可以import
使用该文件。举个例子:
sdk.js:
export var foo = function(){
return "foo";
}
一个.js
import foo from "./sdk.js";
foo();
3)Node.js方式
Node.js 支持require
另一种导入文件的方式。这些文件将在它们自己的范围内运行,您必须使用模块导出来使函数或变量“公开”。
** 毫无价值,这仅适用于节点,而不是浏览器,但是
4)Require.js方式
您也可以使用require.js库来导入其他文件。
其他资源
这个 SO Question的答案比我上面概述的要深入得多。祝你好运!
推荐阅读
- sql-server-2008-r2 - SQL 2000 DTS 针对 SQL2008R2 数据库的随机登录超时错误
- r - 如何在ggplot2 R中的轴上绘制平均值和误差线
- python - 使用 spaCy 训练 NER 时的损失停滞
- flowtype - 如何指定未知/任意大小的泛型列表
- apache-spark - Spark:记录计数不匹配
- r - 管道列表进入 purrr::map 并在 .x 中使用 seq_along
- java - 如何在java代码中从mongodb中获取过滤器值
- ruby-on-rails - 如何将数据写入临时文件?
- c# - 如何散列用户密码?
- rxjs - 当 RxJs Subject 没有观察者时调用方法