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;

好的,结束。

原文地址:https://www.cnblogs.com/claireyu1219/p/6323376.html