欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談node中的exports與module.exports的關(guān)系

 更新時間:2017年08月01日 15:02:43   作者:AugustEchoStone  
本篇文章主要介紹了淺談node中的exports與module.exports的關(guān)系,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

因?yàn)槭亲銮岸说?對node的生態(tài)一直也比較關(guān)注,對于node中對commonJS模塊化的實(shí)現(xiàn)給了我們很大的方便,之前對于導(dǎo)出的module.exports和exports一直模模糊糊,今天做一個整理

先來個js基礎(chǔ)部分的復(fù)習(xí)

let obj1 = {}
let obj2 = obj1
obj2.a = 'a'
obj1.b = 'b'
console.log(obj1) //{a: 'a', b: 'b'}
console.log(obj2) //{a: 'a', b: 'b'}
obj2 = {}
console.log(obj2) //{}
console.log(obj1) //{a: 'a', b: 'b'}

obj1先指向內(nèi)存中的一個區(qū)塊,然后將obj1指向內(nèi)存區(qū)塊的引用傳遞給了obj2,那么這時obj1和obj2都指向了內(nèi)存中的同一個區(qū)塊,所以無論是通過obj1還是obj2向這塊內(nèi)存中加入屬性,都會同時反應(yīng)在obj1和obj2的身上,這時候obj2切斷了與原先內(nèi)存塊的聯(lián)系,指向了新的內(nèi)存塊,而obj1還是指向最先的內(nèi)存區(qū)塊,這時他們就各自管理各自的內(nèi)存區(qū)塊

現(xiàn)在看看module.exports和exports的關(guān)系

如圖最開始的時候module.exports和exports都指向同一塊內(nèi)存區(qū)域,紅線包含的區(qū)域,其中module.exports指向的區(qū)域用灰色填充


初始

現(xiàn)在我們導(dǎo)出為module.exports = {a: "a"},那么module.exports切斷與原來的紅色線包圍的內(nèi)存塊,指向新的內(nèi)存塊還是灰色填充的內(nèi)存塊,如圖



導(dǎo)出module.exports

或者是我們導(dǎo)出為exports = {a: "a"},那么exports切斷與原來的紅線包含的內(nèi)存塊,指向新的內(nèi)存塊,如圖


導(dǎo)出為exports

重要的是我們通過require導(dǎo)入的永遠(yuǎn)都是module.exports,即圖中灰色填充的內(nèi)存塊,而不是紅色線條的最初始的內(nèi)存塊,所以無論我們在導(dǎo)出的時候是用module.exports還是exports只要保證導(dǎo)出的內(nèi)容是掛載在灰色內(nèi)存塊上都是可行的

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Node.js中你不可不精的Stream(流)

    Node.js中你不可不精的Stream(流)

    這篇文章主要給大家介紹了關(guān)于Node.js中你不可不精的Stream(流)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • Nodejs 中的 Buffer 類的創(chuàng)建與基本使用

    Nodejs 中的 Buffer 類的創(chuàng)建與基本使用

    這篇文章主要為大家介紹了Nodejs中Buffer的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • node下使用UglifyJS壓縮合并JS文件的方法

    node下使用UglifyJS壓縮合并JS文件的方法

    下面小編就為大家分享一篇node下使用UglifyJS壓縮合并JS文件的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 使用Make構(gòu)建Node.js網(wǎng)站項(xiàng)目

    使用Make構(gòu)建Node.js網(wǎng)站項(xiàng)目

    這篇文章介紹了使用Make構(gòu)建Node.js網(wǎng)站項(xiàng)目的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • 詳解nodejs微信公眾號開發(fā)——3.封裝消息響應(yīng)模塊

    詳解nodejs微信公眾號開發(fā)——3.封裝消息響應(yīng)模塊

    上一篇文章:nodejs微信公眾號開發(fā)(2)自動回復(fù),實(shí)現(xiàn)了簡單的關(guān)注回復(fù)。采用拼接字符串的形式,并不是很方便,這里我們將其封裝承接口。
    2017-04-04
  • 關(guān)于node-bindings無法在Electron中使用的解決辦法

    關(guān)于node-bindings無法在Electron中使用的解決辦法

    今天小編就為大家分享一篇關(guān)于關(guān)于node-bindings無法在Electron中使用的解決辦法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • nodejs和npm版本不匹配報(bào)錯的解決方法

    nodejs和npm版本不匹配報(bào)錯的解決方法

    當(dāng)公司要求使用固定nodejs的版本時,自己不小心更新了npm,就會導(dǎo)致npm和nodejs不匹配,下面這篇文章主要給大家介紹了關(guān)于nodejs和npm版本不匹配報(bào)錯的解決方法,需要的朋友可以參考下
    2023-04-04
  • 關(guān)于node+mysql數(shù)據(jù)庫連接池連接

    關(guān)于node+mysql數(shù)據(jù)庫連接池連接

    這篇文章主要介紹了關(guān)于node+mysql數(shù)據(jù)庫連接池連接,mysql有兩種連接方式:一種是直接連接 另一種是池化連接,我們這篇講的是池化連接,需要的朋友可以參考下
    2023-04-04
  • node.js中koa和express的差異對比

    node.js中koa和express的差異對比

    Express和koa都是服務(wù)端的開發(fā)框架,服務(wù)端開發(fā)的重點(diǎn)是對HTTP Request和HTTP Response兩個對象的封裝和處理,下面這篇文章主要給大家介紹了關(guān)于node.js中koa和express的差異對比,需要的朋友可以參考下
    2023-05-05
  • node.js中的fs.readlinkSync方法使用說明

    node.js中的fs.readlinkSync方法使用說明

    這篇文章主要介紹了node.js中的fs.readlinkSync方法使用說明,本文介紹了fs.readlinkSync方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評論