首页 > 其他 > 详细

module.exports与exports的区别

时间:2018-08-13 21:48:57      阅读:185      评论:0      收藏:0      [点我收藏+]

1. 每一个node.js执行文件,都自动创建一个module对象,module对象有一个叫exports的属性,module.exports 初始值为一个空对象 {},就像这样:

var module = {
    exports: {}
};

2. exports对象是module.exports对象的快捷方式,是指向的 module.exports 的引用,相当于 : exports = module.exports;
3. require() 返回的是 module.exports 而不是 exports

 

要导出该模块的属性或方法时,我们可以这样:

module.exports.test = test;

当然,我们也可以给exports添加属性:

exports.test = test;

由于exports和module.exports指向同一块内存,就相当于该属性添加到module.exports上;但是我们不能直接用对象字面量给exports赋值,这样exports就指向了新的内存,切断了exports与module.exports之间的联系,这时exports和普通的对象就没有区别了,无法被导出:

exports = {
    test: 1
}

如果要直接使用对象字面量,我们可以直接把它赋值给module.exports:

module.exports = {
    test: 1
}

module.exports与exports的区别

原文:https://www.cnblogs.com/YiNongLee/p/9471142.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!