我的HTML文档底部引用了两个外部脚本:
<script type="module" src="/scripts-1.js"></script>
<script type="module" src="/scripts-2.js"></script>
我一直在运行一些测试,如果我添加:
const logHelloWorld = () => console.log('Hello World');
logHelloWorld();
到任一外部文件,则函数将执行。
但是,如果我将函数声明添加到/scripts-1.js
并将logHelloWorld();
添加到/scripts-2.js
,则控制台会显示错误:
引用错误: 未定义
logHelloWorld
这是因为所有type="module"
脚本都彼此隔离吗?
是的。其他模块要使用的资源必须明确export
,并在需要的地方import
。
以下是 ES6 模块系统的众多指南之一。
模块实际上是相互"隔离"的。您可以从一个模块export
内容,然后将它们import
到另一个模块中。一般来说,type="module"
标志被认为是目前通常不使用的未来主义功能。最好使用其他工具将所有JS文件捆绑在一起,例如webpack。