exports和module.exports的区别
最近忍不住开始尝试nodeJS了,简直又是打开了一片天地,学的越多越觉得自己好low,还有好多好多东西没有触碰,没有学习。
解决这个问题的唯一的办法就是卧薪尝胆。
好的,刚开始接触nodeJS,在视频学习的时候看到了exports和module.exports这两种导出模块函数的方法。哎,好老师太难遇到了,我唯一喜欢的老师就是带我坑js的石川老师,其他老师的视频我实在不知道说什么好。好吧又说别的了,其实我的意思是我没有听懂exports和module.exports的区别,而且那个老师也只是随便说了两句,但是觉得这个挺重要的,于是网上查了一些资料,自己的理解如下:
其实module.exports就是{},而exports是指向module.exports的引用。
有点难理解?
那么接下来用js来说一下。
var a = { x:1 };
var b = a;
这个可以看明白吧?看不明白出门右转去看javascript对象.
接下来我可以这样用
console.log(b.x); // 1
也可以这样用
b.y = 2;
console.log(a); // { x:1, y:2}
所以看懂了吗?其实module.exports就是a,而exports就是b。
当我们在nodeJS里面使用exports是这样的 exports.xxx = yyy; 假如你是用module.exports = yyy,那么yyy就会把原来{}里面的方法都覆盖,而exports.xxx就是添加属性。
假如你一定要使用module.exports的话,可以这样module.exports.xxx = yyy;
好的,结束。