国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

淺談node中的exports與module.exports的關系

2019-11-19 15:55:47
字體:
來源:轉載
供稿:網友

因為是做前端的,對node的生態一直也比較關注,對于node中對commonJS模塊化的實現給了我們很大的方便,之前對于導出的module.exports和exports一直模模糊糊,今天做一個整理

先來個js基礎部分的復習

let obj1 = {}let obj2 = obj1obj2.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先指向內存中的一個區塊,然后將obj1指向內存區塊的引用傳遞給了obj2,那么這時obj1和obj2都指向了內存中的同一個區塊,所以無論是通過obj1還是obj2向這塊內存中加入屬性,都會同時反應在obj1和obj2的身上,這時候obj2切斷了與原先內存塊的聯系,指向了新的內存塊,而obj1還是指向最先的內存區塊,這時他們就各自管理各自的內存區塊

現在看看module.exports和exports的關系

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


初始

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



導出module.exports

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


導出為exports

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 合水县| 凤庆县| 罗甸县| 南涧| 凤城市| 辰溪县| 交口县| 威宁| 安乡县| 璧山县| 元江| 灵寿县| 康乐县| 内江市| 湖南省| 平遥县| 棋牌| 湘阴县| 莒南县| 平遥县| 涪陵区| 邢台县| 连城县| 青田县| 凌海市| 原平市| 绍兴市| 招远市| 沁源县| 桃江县| 利辛县| 保定市| 玛纳斯县| 沙坪坝区| 原平市| 曲阜市| 嘉禾县| 潮州市| 高雄市| 徐水县| 武义县|