91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

簡單理解nodejs模塊的使用

發布時間:2020-07-09 09:44:55 來源:億速云 閱讀:133 作者:Leah 欄目:web開發

本篇文章給大家分享的是有關簡單理解nodejs模塊的使用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

本質

module.exports 用于暴露一個值,這個值默認是對象,也可以覆蓋為原始值。

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

{
  id: '.',
  exports: {}, // 默認空對象
  parent: null,
  filename: '/Users/a10.12/webpack-learning/src/module.js',
  loaded: false,
  children: [],
  paths:
   [ '...' ]
}

你需要通過修改 module 的 exports 屬性來輸出你需要輸出的東西,而 require 用于導入一個模塊,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

因為 module.exports 默認是個對象,在輸出對象的時候自然有這么一種寫法:

module.exports.s = 2

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

簡寫

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

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

有了這個特性,在導出對象時能很方便地這么寫:

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 本來就只是一個對 module.exports 的引用,你可以對這個引用的對象添加屬性,但是一旦用上面兩種方法覆蓋了 exports 對 module.exports 的引用,exports 就等于無效了。

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

以上就是簡單理解nodejs模塊的使用,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹北市| 武汉市| 九龙县| 应用必备| 布尔津县| 香格里拉县| 泊头市| 静宁县| 莱州市| 府谷县| 安达市| 神农架林区| 大港区| 四平市| 道孚县| 噶尔县| 长子县| 张家港市| 长垣县| 富顺县| 安多县| 云南省| 贵德县| 安国市| 西青区| 孟连| 青河县| 高陵县| 元阳县| 桑植县| 杭州市| 平定县| 余庆县| 广丰县| 中西区| 微山县| 和田市| 浏阳市| 广河县| 鸡东县| 中方县|