Node.js中exports 和 module.exports 的區別
阿新 • • 發佈:2018-12-13
- exports 和 module.exports 的區別 + 每個模組中都有一個 module 物件 + module 物件中有一個 exports 物件 + 我們可以把需要匯出的成員都掛載到 module.exports 介面物件中 + 也就是:`moudle.exports.xxx = xxx` 的方式 + 但是每次都 `moudle.exports.xxx = xxx` 很麻煩,點兒的太多了 + 所以 Node 為了你方便,同時在每一個模組中都提供了一個成員叫:`exports` + `exports === module.exports` 結果為 `true`s + 所以對於:`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` 這個用來重新建立引用關係的 + 之所以讓大家明白這個道理,是希望可以更靈活的去用它