摘要:在博客閱讀這個小短文用于快速理解模塊也就是規范。本質用于暴露一個值,這個值默認是對象,也可以覆蓋為原始值。最后提醒,如果前面說的看不懂,可能需要加深對引用值和原始值的理解
在博客閱讀:https://ssshooter.com/2019-03...
這個小短文用于快速理解 nodejs 模塊(也就是 CommonJS 規范)。
本質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 引用值和原始值的理解...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/103115.html
摘要:在前面的節課程里面,我們已經基本學習完了的知識,達到基礎入門的要求。英語的直譯就是表現層狀態轉移。的特點不加密用戶可刪除可被修改依賴于用戶禁用或清除時,讀取出錯。下節,會開始學習框架。 在前面的12節課程里面,我們已經基本學習完了nodejs的知識,達到基礎入門的要求。那為什么會在這節說下使用nodejs來實現一些功能,而不繼續往下講呢?原因有2:1.前面講地都是理論知識,碼代碼比較少...
摘要:特性單線程說明也許你會問,為什么還不安裝還不寫代碼還不講模塊前面我說過,不會一來就。另外,單線程中,操作系統沒有創建銷毀線程的時間開銷。單線程缺點如果有用戶造成線程崩潰,那個整個系統都崩潰了。 nodejs特性1--單線程 說明:也許你會問,為什么還不安裝nodejs?還不寫代碼?還不講模塊?前面我說過,不會一來就hello world。而是會先跟大家講講nodejs的特點,只有大家明...
摘要:體驗優先的單頁框架點此查看倉庫是專為單頁應用而設計的基于頁面模塊化的框架,它可使開發者快速開發單頁應用。使用前置要求此框架的使用者可不需了解構建工具,但必須掌握和的基礎知識。 showImg(https://segmentfault.com/img/bV2wO3?w=792&h=303); Amaple · 體驗優先的JavaScript單頁框架 Amaple (點此查看Github倉...
摘要:體驗優先的單頁框架點此查看倉庫是專為單頁應用而設計的基于頁面模塊化的框架,它可使開發者快速開發單頁應用。使用前置要求此框架的使用者可不需了解構建工具,但必須掌握和的基礎知識。 showImg(https://segmentfault.com/img/bV2wO3?w=792&h=303); Amaple · 體驗優先的JavaScript單頁框架 Amaple (點此查看Github倉...
閱讀 2532·2021-10-11 10:59
閱讀 2712·2021-09-22 15:49
閱讀 2647·2021-08-13 13:25
閱讀 1290·2019-08-30 13:14
閱讀 2393·2019-08-29 18:45
閱讀 2999·2019-08-29 18:36
閱讀 1490·2019-08-29 13:21
閱讀 1163·2019-08-26 11:44