宝哥软件园

导出和模块的区别

编辑:宝哥软件园 来源:互联网 时间:2021-09-05

Node.js中导出和模块导出的区别

Require用于加载代码,而export和module.exports用于导出代码。但是,很多初学者可能会对export和module.exports的区别感到困惑,为了更好地理解export和module.exports的关系,首先要夯实js的基础。示例:

test.js

var a={ name : 1 };var b=a;console . log(a);console . log(b);b . name=2;console . log(a);console . log(b);var b={ name : 3 };console . log(a);console . log(b);运行test.js的结果是:

{ name : 1 } { name : 1 } { name : 2 } { name : 2 } { name : 2 } { name : 3 }说明:A是对象,B是对A的引用,也就是A和B指向同一个内存,所以前两个输出是一样的。当B被修改时,也就是A和B指向同一个内存地址的内容发生了变化,所以A也会被反映出来,所以第三和第四输出是一样的。当B被覆盖时,B指向新的内存,而A仍然指向原始内存,所以最后两个输出是不同的。

了解了上面的例子后,我们只需要知道三点就可以知道导出和模块的区别。

module.exports的初始值为空对象{} exports是对module.exports的引用。require()返回module.exports而不是exports。现在我们来看看Node.js官方文档的截图:

我们经常看到这样的文字:

导出=模块。exports=某物上面的代码相当于:

module.exports=某物sexports=module.exports的原理很简单,就是当module.exports指向一个新对象时,exports断开与module的引用。导出,所以让导出指向模块。通过exports=module再次导出。

感谢您的阅读,希望对大家有所帮助,感谢您对本网站的支持!

更多资讯
游戏推荐
更多+