Javascript 在JS中导入(require)模块是否也会执行整个代码?
将moduleFile.js设为Javascript 在JS中导入(require)模块是否也会执行整个代码?,javascript,node.js,module,export,Javascript,Node.js,Module,Export,将moduleFile.js设为 常量计算={ 加(a,b)={返回a+b}, sub(a,b)={返回a-b} } log(`hello from module`); exports.calcModule=calc; 让main.js与moduleFile.js位于同一目录中 const{calcModule}=require(`./moduleFile`); console.log(calcModule.add(1,2)); 当我在控制台中执行main.js作为$node main.js
常量计算={
加(a,b)={返回a+b},
sub(a,b)={返回a-b}
}
log(`hello from module`);
exports.calcModule=calc;
让main.js与moduleFile.js位于同一目录中
const{calcModule}=require(`./moduleFile`);
console.log(calcModule.add(1,2));
当我在控制台中执行main.js
作为$node main.js
时结果是
hello from module
3
我很难理解模块中的hello也打印出来了。导入模块是否包括执行整个模块文件?是。第一次用
require()
加载CommonJS模块时,将执行任何顶级代码。如您所见,这种情况下必须运行exports.calcModule=calc
并为模块建立导出,您的console.log('hellow from module')
也将运行
加载后,模块将被缓存,因此对同一模块的require()
的任何其他调用都将从模块的原始执行返回导出对象,顶级代码将不会再次运行。因此,顶层代码只运行一次,无论模块在程序中加载多少次
导入模块是否包括执行整个模块文件
是的,它执行您正在加载的模块中的所有顶级代码。
导入模块是否包括执行整个模块文件?
是的。怎么没有人指出这个导入文件?!泰铢,请答复:)