exports 和 module.exports 的區別

龐順龍發表於2019-05-11

require 用來載入程式碼,而 exports 和 module.exports 則用來匯出程式碼。但很多新手可能會迷惑於 exports 和 module.exports 的區別,為了更好的理解 exports 和 module.exports 的關係,我們先來鞏固下 js 的基礎。

  1. module.exports 初始值為一個空物件 {}
  2. exports 是指向的 module.exports 的引用
  3. require() 返回的是 module.exports 而不是 exports

我們經常看到這樣的寫法:

exports = module.exports = somethings

上面的程式碼等價於:

module.exports = somethings
exports = module.exports

原理很簡單,即 module.exports 指向新的物件時,exports 斷開了與 module.exports 的引用,那麼通過 exports = module.exports 讓 exports 重新指向 module.exports 即可。

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章