亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Node.js中module.exports?和exports使用誤區(qū)

 更新時間:2022年01月29日 11:46:10   作者:小吳睡醒了  
本文主要介紹了Node.js中module.exports?和exports使用誤區(qū),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

一、module,module.exports ,exports含義

  • module對象:在每個 .js 自定義模塊中都有一個 module 對象,它里面存儲了和當前模塊有關的信息
  • module.exports 對象:在node里自定義的模塊中,可以使用 module.exports 對象,將自定義的模塊內(nèi)部分的成員共享出去被使用。
  • 當外界(其他js文件)用require() 方法導入自定義模塊時,得到的就是 module.exports 所指向的對象
  • exports對象:由于 module.exports 單詞寫起來比較復雜,為了簡化向外共享成員的代碼,Node 提供了 exports 對象。默認情況下,exports 和 module.exports 指向同一個對象

注意:使用 require() 方法導入模塊時,導入的結果,永遠以 module.exports 指向的對象為準
換句話說最終共享的結果,還是以 module.exports 指向的對象為準

二.案例

通過案例來理解二者的關系

案例一:

定義代碼

//文件名:01.module.exports和exports誤區(qū)
exports.name="小吳"
module.exports ={
    性別:"男",
    age:18
    
}

輸出代碼

//文件名:01-test 
//為了測試module.exports ,exports指向結果 案例二三四的輸出代碼都是此js代碼文件
const obj=require("./01.module.exports和exports誤區(qū)")
console.log(obj);

輸出結果

例子1輸出結果

案例一解釋:因為默認情況下,exports 和 module.exports 指向同一個對象,所以開始二者都是指向一個空對象,當export指向新對象name="小吳"后,此時二者都指向這個對象,但是執(zhí)行后面代碼則是在內(nèi)存中新開辟一個空間存儲新對象 {性別:“男”,age:18} ,且把這個新對象的引用交給了module.exports,則module.exports就指向新的對象,不指向之前的空對象了,而且由于最終共享的結果,以module.exports 指向的對象為準,所以案例輸出如上圖所示

案例二

定義代碼

module.exports.name="小吳"
exports ={
    性別:"男",
    age:18
    
}

輸出結果

案例2輸出結果

案例二解釋:同理當module.exports指向對象name="小吳"后,執(zhí)行后面代碼,,exports指向新對象{性別:“男”,age:18},由于最終共享的結果,還是以 module.exports 指向的對象為準
所以案例輸出如上圖所示

案例三

定義代碼

exports.name="小吳"
module.exports.age=18

輸出結果

在這里插入圖片描述

案例三解釋:同理二者開始指向空對象,第一行代碼通過exports引用關系掛載了一個name屬性,第二行又通過module.exports引用關系掛載了一個屬性age 這里不存在新對象 都是掛載屬性 這些屬性都被放在了開始二者指向的空對象中,則最終兩個屬性都在此對象中,且module.exports指向這個對象,所以最終結果輸出如上圖所示

案例四

定義代碼

exports={
    性別:"男",
    name:"小吳",
    
}
module.exports=exports//把export的引用關系通過等號賦值給了module.exports
module.exports.age=18

輸出結果

在這里插入圖片描述

案例四解釋:同理二者開始指向同一空對象,執(zhí)行代碼,在內(nèi)存中定義了一個新對象,且把新對象掛載在exports上,此時exports就不指向之前的空對象而指向新定義的對象,module.exports=exports這行代碼把export的引用關系通過等號賦值給了module.exports,則module.exports也不指向之前的空對象了,也指向新對象了,最后給module.exports指向的新對象又繼續(xù)掛載了一個age屬性,所以里面的所有屬性都被module.exports指向到的,所以最終結果輸出如圖所示

重要注意:為了防止二者指向混亂,建議不要在同一個模塊中同時使用 exports 和 module.exports

 到此這篇關于Node.js中module.exports 和exports使用誤區(qū)的文章就介紹到這了,更多相關Node.js module.exports和exports內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Express實現(xiàn)定時發(fā)送郵件的示例代碼

    Express實現(xiàn)定時發(fā)送郵件的示例代碼

    在開發(fā)中我們有時候需要每隔?一段時間發(fā)送一次電子郵件,或者在某個特定的時間進行發(fā)送郵件,無需手動去操作,基于這樣的情況下我們需要用到了定時任務。本文就來用Express實現(xiàn)定時發(fā)送郵件吧
    2023-04-04
  • 搞懂什么是Node.js原來這么簡單

    搞懂什么是Node.js原來這么簡單

    這篇文章主要介紹了Node.js的概念和基本原理,對Node.js感興趣的同學,一定要看一下
    2021-04-04
  • Node.js 進程平滑離場剖析小結

    Node.js 進程平滑離場剖析小結

    這篇文章主要介紹了Node.js 進程平滑離場剖析小結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 詳解如何使用nvm管理Node.js多版本

    詳解如何使用nvm管理Node.js多版本

    這篇文章主要介紹了詳解如何使用nvm管理Node.js多版本,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • Windows系統(tǒng)下安裝Node.js的步驟圖文詳解

    Windows系統(tǒng)下安裝Node.js的步驟圖文詳解

    這篇文章主要給大家介紹了Windows系統(tǒng)下Node.js的安裝教程,Node.js是用于后端編程的JavaScript框架,文中給出了詳細圖文介紹,有需要的朋友可以參考下,下面來一起看看吧。
    2016-11-11
  • 使用npm命令提示: ''npm'' 不是內(nèi)部或外部命令,也不是可運行的程序的處理方法

    使用npm命令提示: ''npm'' 不是內(nèi)部或外部命令,也不是可運行的程序的處理方法

    這篇文章主要介紹了使用npm命令提示: 'npm' 不是內(nèi)部或外部命令,也不是可運行的程序,本文通過圖文并茂的形式給大家分享解決方案,需要的朋友可以參考下
    2020-05-05
  • 輕松創(chuàng)建nodejs服務器(7):阻塞操作的實現(xiàn)

    輕松創(chuàng)建nodejs服務器(7):阻塞操作的實現(xiàn)

    這篇文章主要介紹了輕松創(chuàng)建nodejs服務器(7):阻塞操作的實現(xiàn),本文先是組出了代碼,然后對代碼一一分析,需要的朋友可以參考下
    2014-12-12
  • 基于游標的分頁接口實現(xiàn)代碼示例

    基于游標的分頁接口實現(xiàn)代碼示例

    這篇文章主要給大家介紹了關于基于游標的分頁接口實現(xiàn)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • 詳解Node項目部署到云服務器上

    詳解Node項目部署到云服務器上

    本篇文章主要介紹了詳解Node項目部署到云服務器上,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • node.js?實現(xiàn)手機號驗證碼登錄功能

    node.js?實現(xiàn)手機號驗證碼登錄功能

    這篇文章主要介紹了node.js?實現(xiàn)手機號驗證碼登錄功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-08-08

最新評論