javascript - 浏览器中 JavaScript 模块的意义何在?
问题描述
所以我目前正在从事编码项目,当我四处寻找解决特定问题的解决方案时,我遇到了“模块”。虽然我之前听说过这个术语,但我认为有必要研究一下模块实际上是什么以及它们是如何使用的。
从我收集到的信息来看,一个模块就是一段“代码”。无论是存在于一个 JavaScript 文件中的函数、变量、类,它们都可以导出/导入到另一个 JavaScript 文件/从另一个 JavaScript 文件导出/导入。
这似乎有点毫无意义 - 如果我可以从另一个文件中使用它们,为什么还要麻烦导出脚本/脚本集?
这是我正在谈论的一个例子:
// File 1 - adding.js
var c;
function add(a, b) {
c = a + b;
return c;
}
// File 2 - main.js
var d;
d = add(6, 4);
据我所知,这会起作用,main.js
可以访问 中的脚本adding.js
,而无需导出add()
函数。
使用非浏览器 JavaScript 时可能会有所不同,或者我误解了什么是模块,但如果是这样的话,为什么还要使用模块呢?
解决方案
yes, you are right, you don't need to export
add function but you should be careful with the order of importing files.
Meaning that you should import adding.js
before importing main.js
.
<html>
<head>
...
</head>
<body>
...
<script src="adding.js">
</script>
<script src="main.js">
</script>
</body>
</html>
推荐阅读
- c - C 嵌套结构的问题。错误:使用不完整的 typedef 无效
- amazon-web-services - docker-compose 没有这样的命令:转换错误
- mqtt - 使用 Mosquitto brokier 从多个服务器接收 MQTT
- kubernetes - 如何将部署分配给特定的节点池
- angular - 从内部订阅添加角度组件输入数据
- swift - hashable hashValue to hash(into:) for a CGPoint
- python - Pandas Dataframe 如何通过逗号将包含不同数量元素的列拆分为行
- html - 垂直居中子元素,同时填充父 div 的全高
- php - CRITICAL messenger 处理消息 AppBundle\Message\Message 时引发错误
- python - 使用 GitHub 解码器脚本解码有效负载