溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

node中exports與module.exports的關(guān)系是什么

發(fā)布時間:2021-01-15 15:56:08 來源:億速云 閱讀:181 作者:Leah 欄目:web開發(fā)

本篇文章給大家分享的是有關(guān)node中exports與module.exports的關(guān)系是什么,小編覺得挺實用的,因此分享給大家學(xué)習(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ū)域用灰色填充

node中exports與module.exports的關(guān)系是什么

初始

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

node中exports與module.exports的關(guān)系是什么

導(dǎo)出module.exports

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

node中exports與module.exports的關(guān)系是什么

導(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)存塊上都是可行的

undefined

以上就是node中exports與module.exports的關(guān)系是什么,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI