您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(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ū)域用灰色填充
初始
現(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)存塊上都是可行的
undefined
以上就是node中exports與module.exports的關(guān)系是什么,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責(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)容。