module.exports與exports漠另,export與export default之間的關系和區(qū)別

首先我們要明白一個前提,CommonJS模塊規(guī)范和ES6模塊規(guī)范完全是兩種不同的概念跃赚。

CommonJS模塊規(guī)范

Node應用由模塊組成笆搓,采用CommonJS模塊規(guī)范。

根據這個規(guī)范来累,每個文件就是一個模塊砚作,有自己的作用域窘奏。在一個文件里面定義的變量嘹锁、函數、類着裹,都是私有的领猾,對其他文件不可見。

CommonJS規(guī)范規(guī)定,每個模塊內部摔竿,module變量代表當前模塊面粮。這個變量是一個對象,它的exports屬性(即module.exports)是對外的接口继低。加載某個模塊熬苍,其實是加載該模塊的module.exports屬性。

var x = 5;
var addX = function (value) {
  return value + x;
};
module.exports.x = x;
module.exports.addX = addX;

上面代碼通過module.exports輸出變量x和函數addX袁翁。

require方法用于加載模塊柴底。

var example = require('./example.js');

console.log(example.x); // 5
console.log(example.addX(1)); // 6

exports 與 module.exports

為了方便,Node為每個模塊提供一個exports變量粱胜,指向module.exports柄驻。這等同在每個模塊頭部,有一行這樣的命令焙压。

var exports = module.exports;

于是我們可以直接在 exports 對象上添加方法鸿脓,表示對外輸出的接口,如同在module.exports上添加一樣涯曲。注意野哭,不能直接將exports變量指向一個值,因為這樣等于切斷了exports與module.exports的聯系幻件。

ES6模塊規(guī)范

不同于CommonJS虐拓,ES6使用 export 和 import 來導出、導入模塊傲武。

// profile.js
var firstName = 'Michael';
var lastName = 'Jackson';
var year = 1958;

export {firstName, lastName, year};

需要特別注意的是蓉驹,export命令規(guī)定的是對外的接口,必須與模塊內部的變量建立一一對應關系揪利。

// 寫法一
export var m = 1;

// 寫法二
var m = 1;
export {m};

// 寫法三
var n = 1;
export {n as m};

export default 命令

使用export default命令态兴,為模塊指定默認輸出。

// export-default.js
export default function () {
  console.log('foo');
}

相關鏈接:
CommonJS規(guī)范疟位,http://javascript.ruanyifeng.com/nodejs/module.html
ES6 Module 的語法瞻润,http://es6.ruanyifeng.com/#docs/module

注:轉載自https://www.cnblogs.com/fayin/p/6831071.html

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市甜刻,隨后出現的幾起案子绍撞,更是在濱河造成了極大的恐慌,老刑警劉巖得院,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件傻铣,死亡現場離奇詭異,居然都是意外死亡祥绞,警方通過查閱死者的電腦和手機非洲,發(fā)現死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門鸭限,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人两踏,你說我怎么就攤上這事败京。” “怎么了梦染?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵赡麦,是天一觀的道長。 經常有香客問我帕识,道長隧甚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任渡冻,我火速辦了婚禮戚扳,結果婚禮上,老公的妹妹穿的比我還像新娘族吻。我一直安慰自己帽借,他們只是感情好,可當我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布超歌。 她就那樣靜靜地躺著砍艾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巍举。 梳的紋絲不亂的頭發(fā)上脆荷,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天,我揣著相機與錄音懊悯,去河邊找鬼蜓谋。 笑死,一個胖子當著我的面吹牛炭分,可吹牛的內容都是我干的桃焕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼捧毛,長吁一口氣:“原來是場噩夢啊……” “哼观堂!你這毒婦竟也來了?” 一聲冷哼從身側響起呀忧,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤师痕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后而账,有當地人在樹林里發(fā)現了一具尸體胰坟,經...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年福扬,在試婚紗的時候發(fā)現自己被綠了腕铸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡铛碑,死狀恐怖狠裹,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情汽烦,我是刑警寧澤涛菠,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站撇吞,受9級特大地震影響俗冻,放射性物質發(fā)生泄漏。R本人自食惡果不足惜牍颈,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一迄薄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧煮岁,春花似錦讥蔽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至步氏,卻和暖如春响禽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荚醒。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工芋类, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人界阁。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓梗肝,卻偏偏與公主長得像,于是被迫代替她去往敵國和親铺董。 傳聞我的和親對象是個殘疾皇子巫击,可洞房花燭夜當晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內容