exports 和 module.exports 的區別

exports 和 module.exports 的區別
  • 每一個模塊中都有一個 module 對象
  • module 對象中有一個 exports 對象
  • 咱們能夠把須要導出的成員都掛載到 module.exports 接口對象中
  • 也就是:moudle.exports.xxx = xxx 的方式
  • 可是每次都 moudle.exports.xxx = xxx 很麻煩,點兒的太多了
  • 因此 Node 爲了你方便,同時在每個模塊中都提供了一個成員叫:exports
  • exports === module.exports 結果爲 true
  • 因此對於:moudle.exports.xxx = xxx 的方式 徹底能夠:expots.xxx = xxx
  • 當一個模塊須要導出單個成員的時候,這個時候必須使用:module.exports = xxx 的方式
  • 不要使用 exports = xxx 無論用
  • 由於每一個模塊最終向外 return 的是 module.exports
  • exports 只是 module.exports 的一個引用
  • 因此即使你爲 exports = xx 從新賦值,也不會影響 module.exports
  • 可是有一種賦值方式比較特殊:exports = module.exports 這個用來從新創建引用關係的

是否是很複雜,若是實在不懂的話會用就好了markdown

使用

  • 導出多個成員:exports.xxx = xxx
  • 導出多個成員也能夠:module.exports = { }
  • 導出單個成員:module.exports = xxx

必定要記住,最後 return 的是 module.exportside

相關文章
相關標籤/搜索