1. 程式人生 > >exports 和 module.exports

exports 和 module.exports

在每個模組中,module變量表示當前模組的物件的引用。module實際上不是全域性的,而是每個模組本地的。

建立foo.js檔案

console.log(module);
console.log('---------華麗的分割線----------')
console.log(exports);
console.log('---------華麗的分割線----------')
console.log(module.exports === exports);

列印結果: 這裡寫圖片描述

module.exports === exports的結果是true。 exports其實就是module.exports的一個引用。 初始值均為一個空物件{} module.exports.f = ...

可以採用精簡的寫法exports.f = ... 如果exports變數被重新賦值,它將不會繫結到module.exports上 exports.f 相當於在到處物件上掛載屬性,該屬性對呼叫模組可見。 exports = 則是被重新賦值,

module.exports.hello = true; // Exported from require of module
exports = { hello: false };  // Not exported, only available in the module