关于exports.add=add中,两个add方法的意义?
1.关于exports.add=add中,为什么在共享到外部的过程中,这个add方法不能改名字?
两个add分别代表什么呢?
2.exports.add=add和module.exports=add的具体的区别在哪里呢?感觉后者的语法更好理解啊(主要还是前者搞不清楚...)
1.关于exports.add=add中,为什么在共享到外部的过程中,这个add方法不能改名字?
两个add分别代表什么呢?
2.exports.add=add和module.exports=add的具体的区别在哪里呢?感觉后者的语法更好理解啊(主要还是前者搞不清楚...)
2017-06-15
exports.add=add和module.exports=add完全是两个不一样的东西。
首先,先知道一点,require()返回的是module.exports;而module.exports={ };exports=module.exports;
1 exports.add=add和module.exports.add=add是一个相似的东西。可以说,exports是module.exports的一个引用。当第一种写法,是在module.exports这个object字面量对象上继续挂值。当你这样写exports={add:add}时候,就不行了。因为相当于重写了exports,这时候exports就是另一个object字面量了。
2 module.exports=add这个写法。是相当于把add看成了模块的名字。把add当成模块直接导出。或者说
var res=require()后,res即等于add。可以直接调用res().
有想法再沟通。
举报