九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
你真的會用exports和module.exports嗎?

ode中有兩個概念exports和module.exports很讓人迷惑,霧里看花一般的捉摸不透,本文結(jié)合測試來告訴你二者的潛規(guī)則.....

潛規(guī)則

我們知道CommonJS規(guī)定,每個模塊內(nèi)部都有個module變量代表它,而module變量有個exports屬性。為了方便,Node為每個模塊提供了一個exports變量指向module.exports。


 

記住exoprts和module.exports二者潛規(guī)則如下:

  • 加載的模塊返回的總是module.exports;

  • 二者默認(rèn)的指向同一個object對象引用,建立關(guān)聯(lián)關(guān)系;

  • 一旦二者不通過屬性向此object添加擴(kuò)展,關(guān)聯(lián)關(guān)系就會斷開,各自有獨(dú)立的內(nèi)存空間;


驗證前準(zhǔn)備

為了后續(xù)測試的順利,我準(zhǔn)備了兩個文件:

├── app.js //啟動入口├── base-module.js //模塊


app.js用作程序啟動的入口,內(nèi)容如下

// ./app.jsvar base=require('./base-module');console.log(base.name);

base-module.js用于模塊定義,后面的代碼都在此文件中編寫。

驗證正常

先來看看正常的情況:在base-module.js中編碼如下

exports.name='zqf-blog';

module.exports.name='zqf-blog';

執(zhí)行 node app.js 即可以看到輸出 zqf-blog。也能看到exports和module.exports


module.exports賦值


// ./base-module.jsmodule.exports={};exports.name='zqf-blog';

兩條語句順序無關(guān),執(zhí)行都輸出 undefined,不能理解為module.exports指向一個對象,而exports.name就可以向這個對象添加name屬性!其實(shí)二者已經(jīng)斷開了關(guān)系,各自有獨(dú)立的內(nèi)控空間。


exports賦值


// ./base-module.jsexports={};exports.name='zqf-blog';

執(zhí)行輸出 undefined,當(dāng)給exports賦時,二者已經(jīng)斷開了關(guān)系,各自有獨(dú)立的內(nèi)控空間,他們的值和上例同樣


總是返回module.exports


// ./base-module.jsexports={};exports.name="exportName"module.exports.name="zqf-blog";

執(zhí)行輸出 zqf-blog,exports.name和module.exports.name不同,返回的是后者


學(xué)會分析


// ./base-module.jsmodule.exports = '';module.exports.name = 'zqf-blog';exports.name = 'exportName';

猜猜看執(zhí)行會輸出zqf-blog嗎?

實(shí)際上輸出undefined,因為module.exports不再是對象,不具有name屬性


總結(jié)

不管千變?nèi)f化,只要記住上面的三條潛規(guī)則,就不再會搞錯了,你就真的懂得如何使用exports和module.exports了,如果你還不懂,那就只記得第一條吧,這樣任何時候你都使用module.exports就不會錯。

不管博客還是微信公眾號,寫的都是種情懷...

如果你從中能夠獲得啟發(fā),請把它分享出去,非常感謝...



本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
nodejs中模塊,exports,module.exports
終于講清楚了nodejs中exports和module.exports的區(qū)別
node.js全局變量說明
node 中的模塊使用
通過Anuglar Material串串學(xué)客戶端開發(fā) - NodeJS模塊機(jī)制之Module.Exports
前端模塊化開發(fā)(AMD和CDM規(guī)范)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服