风华正茂、时光流逝、真爱时光、努力创建辉煌。

【node】------module.exports&&exports之间的区别

 

 

1、再讲module.exports 与exports之间的区别的时候我们先来回顾一下js里面的引用传递

复制代码
   001、引用传递

   var arr = [10,20,30]; var newarr = arr; console.log(arr);//[10,20,30] console.log(newarr);//[10,20,30]; newarr[0] = 40; console.log(arr);//[40,20,30]; console.log(newarr);//[40,20,30];
复制代码
分析:
    第一次定义var arr = [10,20,30]; 我们知道引用数据类型的数据放在堆中,索引放在栈中,索引指向的地址是堆中的地址,而var newarr = arr;是将arr的指向复制了一份给了newarr,因此第一次输出2个的值是一样的。而第二次newarr[0] = 40,因为newarr的指向和arr的指向是相同的,因此newarr[0] = 40,是将地址中的第一个数据发送了改变。而恰好两者的指向是相同的因此arr的数据也发生了改变
 

 

2、module.exports && exports
复制代码
其实两者的关系跟上面的关系是一样的。exports是module.exports的一个引用。
    区别:
        1、module.exports默认的初始值是一个空的对象
 
        2、exports是module.exports的一个引用
 
    3、require返回的是module.exports而不是exports
复制代码

 

posted @ 2019-08-21 23:47  野马,程序源改造新Bug  阅读(112)  评论(0)    收藏  举报