require引用的是module.exports
這個(gè)對(duì)象趁曼,而不是exports
對(duì)象
當(dāng)我們?cè)趎odejs中導(dǎo)出某個(gè)值的時(shí)候,經(jīng)常會(huì)使用下面兩種下法
// 寫法一棕洋,通過exports引用module.exports導(dǎo)出
// 這里如果exports = a挡闰,它會(huì)切掉指向module.exports指向地址的引用,所以不會(huì)改變module.exports對(duì)象的內(nèi)容
exports.a = function() {
console.log('a')
}
// 實(shí)際上只是
let exports掰盘;
exports = module.exports = {}
exports.a = function() {
console.log('a')
}
的簡化而已
// 寫法二摄悯,直接導(dǎo)出
module.exports = { a: 'a' }
總結(jié):兩者的區(qū)別在于exports
是變量,指向module.exports
愧捕,而module.exports
是module
對(duì)象上exports
屬性{}奢驯,共同點(diǎn)最終導(dǎo)出的都是module.exports
的值