Javascript ES6模块的导入运行非exporeted函数
我有两个文件:a.js和b.js 我把a导入b。 我在index.html中包含了b.js 为什么test2函数运行,即使我只导出了Javascript ES6模块的导入运行非exporeted函数,javascript,ecmascript-6,import,module,export,Javascript,Ecmascript 6,Import,Module,Export,我有两个文件:a.js和b.js 我把a导入b。 我在index.html中包含了b.js 为什么test2函数运行,即使我只导出了test函数而没有导出test2。 //a、 js function test(){ alert("Test") } function test2(){ alert("test2") } test2(); export {test} //b、 js import { test } from './a.js'; test() 因为您明确地将其作为定义
test
函数而没有导出test2
。
//a、 js
function test(){
alert("Test")
}
function test2(){
alert("test2")
}
test2();
export {test}
//b、 js
import { test } from './a.js';
test()
因为您明确地将其作为定义该模块的一部分来运行?你为什么认为不会呢?@jornsharpe,但我只是将
test
导入模块b
。模块a
的其余部分不应该从模块b
中不可访问/不可执行吗?它不能从模块b中访问,但这并不意味着它永远不会运行。@jornsharpe我也有同样的问题。如何阻止函数外的代码运行?@RedGuy11然后将其拆分为两个文件,一个可从中导入,另一个可导入并运行。因为您在定义该模块时显式运行了它?你为什么认为不会呢?@jornsharpe,但我只是将test
导入模块b
。模块a
的其余部分不应该从模块b
中不可访问/不可执行吗?它不能从模块b中访问,但这并不意味着它永远不会运行。@jornsharpe我也有同样的问题。如何阻止函数外的代码运行?@RedGuy11然后将其拆分为两个文件,一个可从中导入,另一个可导入并运行。