国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

快速理解 nodejs 模塊

Joonas / 2132人閱讀

摘要:在博客閱讀這個(gè)小短文用于快速理解模塊也就是規(guī)范。本質(zhì)用于暴露一個(gè)值,這個(gè)值默認(rèn)是對(duì)象,也可以覆蓋為原始值。最后提醒,如果前面說的看不懂,可能需要加深對(duì)引用值和原始值的理解

在博客閱讀:https://ssshooter.com/2019-03...

這個(gè)小短文用于快速理解 nodejs 模塊(也就是 CommonJS 規(guī)范)。

本質(zhì)

module.exports 用于暴露一個(gè)值,這個(gè)值默認(rèn)是對(duì)象,也可以覆蓋為原始值。

嘗試在一個(gè)文件中直接 log 出 module 的值,可以得到:

{
  id: ".",
  exports: {}, // 默認(rèn)空對(duì)象
  parent: null,
  filename: "/Users/a10.12/webpack-learning/src/module.js",
  loaded: false,
  children: [],
  paths:
   [ "..." ]
}

你需要通過修改 module 的 exports 屬性來輸出你需要輸出的東西,而 require 用于導(dǎo)入一個(gè)模塊,module.exports 的值是什么,require 拿到的就是什么。

使用

例如有 module.js

module.exports = {
  s: 2,
}

在 index.js 中引入

let v = require("./module.js")

console.log(v) // 輸出為 { s: 2 }

原始值的情況也一樣

module.exports = 2

let v = require("./module.js")

console.log(v) // 輸出為 2

因?yàn)?module.exports 默認(rèn)是個(gè)對(duì)象,在輸出對(duì)象的時(shí)候自然有這么一種寫法:

module.exports.s = 2

這樣 require 得到的也是{ s: 2 }

簡(jiǎn)寫

大概是大佬們覺得 module.exports 寫起來太長(zhǎng),于是把 exports 引用到了 module.exports,所以檢查這兩個(gè)東西是否相等時(shí),返回 true:

console.log(exports === module.exports) // true

有了這個(gè)特性,在導(dǎo)出對(duì)象時(shí)能很方便地這么寫:

exports.s = 2

let v = require("./module.js")

console.log(v) // 輸出為 2

但是你卻不能這么寫:

// 這樣
exports = 2
// 或這樣
exports = {
  s: 2,
}
// 都是不可以的

let v = require("./module.js")

console.log(v) // 輸出為 {}

原因正如上面所說,exports 本來就只是一個(gè)對(duì) module.exports 的引用,你可以對(duì)這個(gè)引用的對(duì)象添加屬性,但是一旦用上面兩種方法覆蓋了 exports 對(duì) module.exports 的引用,exports 就等于無效了。

最后提醒,如果前面說的看不懂,可能需要加深對(duì) ECMAScript 引用值和原始值的理解...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/103115.html

相關(guān)文章

  • 快速學(xué)習(xí)nodejs系列:十三、nodejs實(shí)現(xiàn)restful api、cookie、session

    摘要:在前面的節(jié)課程里面,我們已經(jīng)基本學(xué)習(xí)完了的知識(shí),達(dá)到基礎(chǔ)入門的要求。英語(yǔ)的直譯就是表現(xiàn)層狀態(tài)轉(zhuǎn)移。的特點(diǎn)不加密用戶可刪除可被修改依賴于用戶禁用或清除時(shí),讀取出錯(cuò)。下節(jié),會(huì)開始學(xué)習(xí)框架。 在前面的12節(jié)課程里面,我們已經(jīng)基本學(xué)習(xí)完了nodejs的知識(shí),達(dá)到基礎(chǔ)入門的要求。那為什么會(huì)在這節(jié)說下使用nodejs來實(shí)現(xiàn)一些功能,而不繼續(xù)往下講呢?原因有2:1.前面講地都是理論知識(shí),碼代碼比較少...

    asce1885 評(píng)論0 收藏0
  • 快速學(xué)習(xí)nodejs系列:四、nodejs特性1--單線程

    摘要:特性單線程說明也許你會(huì)問,為什么還不安裝還不寫代碼還不講模塊前面我說過,不會(huì)一來就。另外,單線程中,操作系統(tǒng)沒有創(chuàng)建銷毀線程的時(shí)間開銷。單線程缺點(diǎn)如果有用戶造成線程崩潰,那個(gè)整個(gè)系統(tǒng)都崩潰了。 nodejs特性1--單線程 說明:也許你會(huì)問,為什么還不安裝nodejs?還不寫代碼?還不講模塊?前面我說過,不會(huì)一來就hello world。而是會(huì)先跟大家講講nodejs的特點(diǎn),只有大家明...

    cgspine 評(píng)論0 收藏0
  • Amaple.js框架詳細(xì)介紹

    摘要:體驗(yàn)優(yōu)先的單頁(yè)框架點(diǎn)此查看倉(cāng)庫(kù)是專為單頁(yè)應(yīng)用而設(shè)計(jì)的基于頁(yè)面模塊化的框架,它可使開發(fā)者快速開發(fā)單頁(yè)應(yīng)用。使用前置要求此框架的使用者可不需了解構(gòu)建工具,但必須掌握和的基礎(chǔ)知識(shí)。 showImg(https://segmentfault.com/img/bV2wO3?w=792&h=303); Amaple · 體驗(yàn)優(yōu)先的JavaScript單頁(yè)框架 Amaple (點(diǎn)此查看Github倉(cāng)...

    loonggg 評(píng)論0 收藏0
  • Amaple.js框架詳細(xì)介紹

    摘要:體驗(yàn)優(yōu)先的單頁(yè)框架點(diǎn)此查看倉(cāng)庫(kù)是專為單頁(yè)應(yīng)用而設(shè)計(jì)的基于頁(yè)面模塊化的框架,它可使開發(fā)者快速開發(fā)單頁(yè)應(yīng)用。使用前置要求此框架的使用者可不需了解構(gòu)建工具,但必須掌握和的基礎(chǔ)知識(shí)。 showImg(https://segmentfault.com/img/bV2wO3?w=792&h=303); Amaple · 體驗(yàn)優(yōu)先的JavaScript單頁(yè)框架 Amaple (點(diǎn)此查看Github倉(cāng)...

    imingyu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<