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

一文詳解Node中module.exports和exports區(qū)別

 更新時(shí)間:2023年03月09日 10:49:13   作者:藍(lán)色海島  
這篇文章主要介紹了一文詳解Node中module.exports和exports區(qū)別

一、當(dāng)使用分別暴露時(shí),module.exports和exports是一樣的

math.js

const add = (a, b) => a + b
const subtract = (a, b) => a - b
module.exports.add = add
module.exports.subtract = subtract

index.js

const math = require('./math')
console.log(math.add(2, 3))
console.log(math.subtract(2, 3))

執(zhí)行 node .\index.js會(huì)打印5和-1

此時(shí),若你在math.js中使用exports分別暴露時(shí)也是可以的:

// module.exports.add = add
// module.exports.subtract = subtract
exports.add = add
exports.subtract = subtract

二、當(dāng)使用統(tǒng)一暴露時(shí),它倆是不一樣的

module.exports的統(tǒng)一暴露

實(shí)際中我們經(jīng)常這樣寫

module.exports = { add, subtract }

此時(shí)執(zhí)行node index還是會(huì)打印5和-1

使用exports同一個(gè)暴露

// module.exports = { add, subtract }
exports = { add, subtract }

此時(shí)再執(zhí)行node index會(huì)報(bào)錯(cuò):

TypeError: math.add is not a function

三、為什么exports可以分別暴露,但不能統(tǒng)一暴露

觀察源碼里這幾句代碼:

const exports = this.exports;  
const thisValue = exports;  
const module = this;

由此可見,exports和module.exports指向同一個(gè)對(duì)象。所以當(dāng)你使用分別暴露時(shí),實(shí)質(zhì)上是給這個(gè)對(duì)象上添加了一個(gè)個(gè)屬性,這兩種方式是同一個(gè)意思。

但是,一旦寫成統(tǒng)一暴露,exports = { add, subtract }改變了exports的指向,切斷了與module.exports之間的引用關(guān)系,exports不再是module.exports的那個(gè)對(duì)象了

四、總結(jié)

  • 一般情況下,我們都會(huì)使用module.exports統(tǒng)一暴露,即導(dǎo)出一個(gè)對(duì)象
  • 如果使用分別暴露,module.exports和exports是一樣的,此時(shí)exports是module.exports的簡(jiǎn)寫,但很少這樣做

以上就是一文詳解Node中module.exports和exports區(qū)別的詳細(xì)內(nèi)容,更多關(guān)于Node module.exports區(qū)別exports的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Linux通過yum命令徹底刪除node.js并重新安裝

    Linux通過yum命令徹底刪除node.js并重新安裝

    這篇文章主要介紹了Linux通過yum命令徹底刪除node.js并重新安裝,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2021-11-11
  • node.js遍歷目錄的方法示例

    node.js遍歷目錄的方法示例

    本篇文章主要介紹了node.js遍歷目錄的方法示例,主要介紹了同步遍歷和異步遍歷兩種方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2018-08-08
  • node.js中的fs.renameSync方法使用說明

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

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

    Node.js實(shí)現(xiàn)鏈?zhǔn)交卣{(diào)

    這篇文章介紹了Node.js實(shí)現(xiàn)鏈?zhǔn)交卣{(diào)的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • 使用Typescript和ES模塊發(fā)布Node模塊的方法

    使用Typescript和ES模塊發(fā)布Node模塊的方法

    這篇文章主要介紹了使用Typescript和ES模塊發(fā)布Node模塊的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 基于Nodejs實(shí)現(xiàn)文件壓縮和解壓功能

    基于Nodejs實(shí)現(xiàn)文件壓縮和解壓功能

    在?windows?系統(tǒng)上面,我們壓縮文件,常常需要安裝一些壓縮軟件才能實(shí)現(xiàn)壓縮,可能有些還存在一些問題,所以本文就來使用Nodejs實(shí)現(xiàn)文件壓縮和解壓功能吧
    2024-03-03
  • Nodejs中怎么實(shí)現(xiàn)函數(shù)的串行執(zhí)行

    Nodejs中怎么實(shí)現(xiàn)函數(shù)的串行執(zhí)行

    今天小編就為大家分享一篇關(guān)于Nodejs中怎么實(shí)現(xiàn)函數(shù)的串行執(zhí)行,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 解決nodejs報(bào)錯(cuò)Error:EPERM:operation not permitted,mkdir‘xxxxxxxxxxxxxxxx‘

    解決nodejs報(bào)錯(cuò)Error:EPERM:operation not permitted,mkdi

    這篇文章主要介紹了解決nodejs報(bào)錯(cuò)Error:EPERM:operation not permitted,mkdir‘xxxxxxxxxxxxxxxx‘問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Node.js實(shí)現(xiàn)批量去除BOM文件頭

    Node.js實(shí)現(xiàn)批量去除BOM文件頭

    這篇文章主要介紹了Node.js實(shí)現(xiàn)批量去除BOM文件頭,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12
  • 使用nodejs分離html文件里的js和css詳解

    使用nodejs分離html文件里的js和css詳解

    在本篇文章里小編給大家分享了關(guān)于如何使用nodejs分離html文件里的js和css的相關(guān)知識(shí)點(diǎn),需要的朋友參考下。
    2019-04-04

最新評(píng)論