Nodejs中exports和module.exports與ES6中的export default 和 export 區別

xiaoyu_zheng發表於2018-07-06

一、Nodejs中exports與module.exports的區別

1.exports只是module.exports的引用。

2.require()返回的是 module.exports 而不是 exports

3.module.exports 初始值為一個空物件 {}


每一個Nodejs的執行檔案都會自動地建立一個module物件,同時module.exports會建立一個叫exports的屬性,初始值為空物件{}。exports和module.exports指向同一個記憶體,但require()返回的是module.exports而不是exports,比如你只是給匯出一些屬性,即對其指向的記憶體進行修改的時候,使用exports和module.exports都可以得到相同的結果

require()返回的是module.exports 而不是exports,當exports被賦值為一個新的物件時,它將會斷開與module.exports的關係


二、ES6中的export default 和 export 區別

1.export與export default均可用於匯出常量、函式、檔案、模組等
2.你可以在其它檔案或模組中通過import+(常量 | 函式 | 檔案 | 模組)名的方式,將其匯入,以便能夠對其進行使用
3.在一個檔案或模組中,export、import可以有多個,export default僅有一個
4.通過export方式匯出,在匯入時要加{ },export default則不需要




相關文章