您可以还是应该使用委托(函数指针)?

时间:2019-03-21 08:32:13

标签: javascript

这可能是基本的,但是由于我是新手,所以我无法理解我做错了什么,这是一种不好的做法。假设我有3个JS文件:

  1. a.js
  2. b.js
  3. sdk.js

sdk.js是一些SDK,我想从不同的js文件(例如ab)中调用其中的函数。

要走的路是只从其他任何文件 中直接调用sdk.js 中的函数吗?对我来说这似乎没有限制,但我不能在没有面向对象编程的情况下找不到另一种方法。

2 个答案:

答案 0 :(得分:2)

有几种方法可以在另一个文件中调用函数。

1)本机解决方案

在HTML文件中,确保首先加载导入<script>的{​​{1}}标签,像这样

sdk.js

只要<script src="./sdk.js/"></script> <script src="./a.js/"></script> <script src="./b.js/"></script> 在全局名称空间中声明该函数,任何加载的后缀文件都应可以访问该函数

2)ES6

如果您可以使用ES6功能(例如,通过babel或webpack),则其他脚本可以import文件。请看以下示例:

sdk.js:

sdk.js

a.js

export var foo = function(){
return "foo";
}

3)Node.js方式

Node.js支持require,这是另一种导入文件的方式。这些文件将在它们自己的范围内运行,并且您必须使用module exports来使函数或变量“公开”。

**毫无用处,这仅适用于节点,而不适用于浏览器

4)Require.js方式

您也可以使用require.js库来导入其他文件。

其他资源

This SO Question比我上面概述的答案要深入得多。祝你好运!

答案 1 :(得分:0)

可以使用

module.exports = { 
       a:()=>{
           console.log("This is 'a' function");
       },
       b:()=>{
           console.log("This is 'b' function");
       }
}

您可以通过导入以下文件来从下一个文件调用这些功能

const file1 = require('that_file_name');
file1.a();
file1.b();

希望您得到正确的答案。