exports和module.exports

nodejs有幾個沒有定義可是卻存在的變量,其中兩個是:module、exports。
module變量是模塊對象自身,exports是在module的構造函數中初始化的一個空對象({},而不是null)。node

函數

exports = module.exports = {};

這兩個的關係爲: exports是指向module.exports的引用,只有指向同一內存,二者纔有聯繫。ui

  1. module.exports指向內存改變,exports也會改變;code

  2. exports添加新屬性,就是給module.exports添加新屬性;對象

  3. 若是直接對exports進行覆蓋,exports就指向了和module.exports不一樣的內存。require後報錯,是由於require返回的是module.exports,而此時module.exports仍指向了空對象;內存

相關文章
相關標籤/搜索