天天看點

node.js 中子產品的exports和module.exports

之前在使用子產品時,還沒有發現可以通過exports直接指派,公開變量或者函數。其實,exports就像是module.exports的引用變量,而module.exports直接就相當于堆記憶體位址,是以,在最開始的時候,exports是指向module.exports的,即exports= module.exports={},而且預設傳回的是module.exports。

  • 驗證預設傳回的module.exports 

建立一個js檔案a.js,内容如下:

var key = 100;
exports =key;
module.exports=key;
return exports;
           

得到的列印結果如下:在執行exports =key;時,即 你把key值指派給exports 列印出來的是空,但是,在執行module.exports=key;時,列印出來的是key的值

node.js 中子產品的exports和module.exports
  • exports 和module.exports關系的驗證  

1.在你給exports,指派變量或者函數時,module.exports是可以取到exports添加的變量和函數的

var key = 100;
exports.key =key;
///module.exports=key;
return exports;
           

列印出來的結果如下:說明你在給exports做指派操作時,module.exports是可以擷取到exports的操作内容的。

node.js 中子產品的exports和module.exports

2.在同時對exports和module.exports做指派操作時,exports的指派操作是無效的。

var key = 100;
exports.key =key;


function testFunc (argument) {
console.log(argument);	
};
module.exports = {
  testFunc:testFunc
};
return exports;
           

列印的結果如下:發現我再給module.exports指派時,exports的指派操作在module.exports中沒有展現出來。

node.js 中子產品的exports和module.exports

繼續閱讀