码迷,mamicode.com
首页 > 其他好文 > 详细

exports和module.exports的区别

时间:2016-11-13 13:56:37      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:cti   应该   export   简单   log   返回   例子   add   内容   

总结:exports是module.exports的指向.

1. module应该是require方法中,上下文中的对象

2. exports对象应该是上下文中引用module.exports的新对象

3. exports.a = xxx 会将修改更新到module.exports对象中

4. exports = xxx 直接改变了 exports的指向

首先我们来举个例子吧,为了更好地理解.

define(function(require,exports,module){
function add(){
console.log(‘这是add方法‘);
}
//exports.add = add;
 
//module.exports.add = add;
//module.exports = add;
//exports = add;
 
})
这么简单的一个例子,里面,
exports.add = add;和
module.exports.add = add;其实是一样的,返回的时候返回的都是一个exports对象,而里面都有一个add的方法,所以都可以调用add()的方法.这时候好像他们是没有区别的.
但是如果例子中写的是
module.exports = add;和
exports = add;就相当于把add方法直接赋值给module.exports和exports,而exports只是module的一个指向,所以将来如果返回的不是一个方法,而只是一个内容,但是可以赋值给module.exports,
然后返回的是一个方法.
当然,要注意,如果有多个方法的话,利用直接赋值给module.exports的话,后面的赋值会覆盖前面的赋值.这个小细节要格外注意.

以上是我对exports与module.exports的区别的理解,希望大家可以增加漏点,订正错点.不喜勿喷,谢谢.

 

exports和module.exports的区别

标签:cti   应该   export   简单   log   返回   例子   add   内容   

原文地址:http://www.cnblogs.com/weiyecrossover/p/6058024.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!