成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

一看就懂的module.exports/exports與module.export/export d

ZoomQuiet / 1556人閱讀

摘要:命令規(guī)定的是對(duì)外的接口,必須與模塊內(nèi)部的變量建立一一對(duì)應(yīng)關(guān)系。意思是導(dǎo)出的不是一個(gè)具體的數(shù)值,而是一個(gè)對(duì)象命令接受一對(duì)大括號(hào),里面指定要從其他模塊導(dǎo)入的變量名。大括號(hào)里面的變量名,必須與被導(dǎo)入模塊對(duì)外接口的名稱相同。

一、module.exports與exports

nodeJS采用commonJs規(guī)范,當(dāng)前文件是一個(gè)模塊(module)私有域,通過exports屬性導(dǎo)出,通過require()引入模塊,通過.xx去獲取值,從而了解到加載某個(gè)模塊,其實(shí)是加載該模塊的exports屬性

exportsmodule.exports的別名,不要在同一個(gè)文件內(nèi)同時(shí)使用兩個(gè),否則只能獲取到module.exports的值

exports導(dǎo)出
// example.js
module.exports.a = "111";
module.exports.fun= function() {
 
}

// 或者寫成對(duì)象形式
module.exports = {
  a : "111",
  fun: function(){}
}
require加載
let test = require("./example.js")

console.log(test.a)
console.log(test.fun);
二、module.export/export default{}

ES6中的模塊功能主要由兩個(gè)命令構(gòu)成:exportimportexport命令用于規(guī)定模塊的對(duì)外接口,import命令用于輸入其他模塊提供的功能。

export命令規(guī)定的是對(duì)外的接口,必須與模塊內(nèi)部的變量建立一一對(duì)應(yīng)關(guān)系。意思是導(dǎo)出的不是一個(gè)具體的數(shù)值,而是一個(gè)對(duì)象{a: 1, b: function(){}}

import命令接受一對(duì)大括號(hào),里面指定要從其他模塊導(dǎo)入的變量名。大括號(hào)里面的變量名,必須與被導(dǎo)入模塊(profile.js)對(duì)外接口的名稱相同。因此,import {}中的變量名是export {}key

import命令輸入的變量都是只讀的,因?yàn)樗谋举|(zhì)是輸入接口。因此,模塊導(dǎo)出的值,只能獲取,不可以修改

export導(dǎo)出
//example2.js

// 1. 直接導(dǎo)出某個(gè)變量或函數(shù)
export const a = 1;
export function fun() {

}

// 2. 先定義變量或者函數(shù),再進(jìn)行導(dǎo)出
const a = 1;
export {a};

function fun() {

}
export {fun}; 

// 3. 加別名進(jìn)行導(dǎo)出
const a = 1;
export {a as b} // b是a的別名

// 4. export default 
注意,一個(gè)文件只能有一個(gè)default,這代表是模塊的整體輸出
import導(dǎo)入
// 1. 常規(guī)導(dǎo)入
import {a, fun} from "example2.js"
// 2. 別名導(dǎo)入
import {a as b} from ...
// 3. *導(dǎo)入整個(gè)模塊
import * as b from ...
// 4. 前三種是module.export,此處是export default
import b from ...

console.log(a)
console.log(fun())

補(bǔ)充:exportimport可復(fù)合書寫,如果在一個(gè)模塊之中,先輸入后輸出,不做任何操作
export {} from ""

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/104430.html

相關(guān)文章

  • 一看懂的javascript全等于等于

    Javascript只有六個(gè)假值(用在條件if的判斷) showImg(https://segmentfault.com/img/bVLiHL?w=424&h=346); 全等于 類型不同,返回false類型相同,則 showImg(https://segmentfault.com/img/bVLiHS?w=476&h=341); 等于 類型相同:同上=== 類型不同:嘗試類型轉(zhuǎn)換==【不是真值和...

    Apollo 評(píng)論0 收藏0
  • 一看懂的JS抽象語法樹

    摘要:前言是現(xiàn)在幾乎每個(gè)項(xiàng)目中必備的一個(gè)東西,但是其工作原理避不開對(duì)的解析在生成的過程,有引擎,早期了項(xiàng)目,了解這個(gè)之前我們先來看看這種引擎解析出來是什么東西。 前言 babel是現(xiàn)在幾乎每個(gè)項(xiàng)目中必備的一個(gè)東西,但是其工作原理避不開對(duì)js的解析在生成的過程,babel有引擎babylon,早期fork了項(xiàng)目acron,了解這個(gè)之前我們先來看看這種引擎解析出來是什么東西。不光是babel還有...

    HackerShell 評(píng)論0 收藏0
  • 一看懂的Java線程池分析詳解

    摘要:任務(wù)性質(zhì)不同的任務(wù)可以用不同規(guī)模的線程池分開處理。線程池在運(yùn)行過程中已完成的任務(wù)數(shù)量。如等于線程池的最大大小,則表示線程池曾經(jīng)滿了。線程池的線程數(shù)量。獲取活動(dòng)的線程數(shù)。通過擴(kuò)展線程池進(jìn)行監(jiān)控??蚣馨ň€程池,,,,,,等。 Java線程池 [toc] 什么是線程池 線程池就是有N個(gè)子線程共同在運(yùn)行的線程組合。 舉個(gè)容易理解的例子:有個(gè)線程組合(即線程池,咱可以比喻為一個(gè)公司),里面有3...

    Yangder 評(píng)論0 收藏0
  • 一看懂的例子告訴你用react-redux的正確姿勢

    摘要:很多小白在看過很多教程之后仍然在敲代碼的時(shí)候不清楚應(yīng)該以什么樣的步驟進(jìn)行,那么這篇文章就一步一步分解整個(gè)過程,慢動(dòng)作回放讓大家看的清清楚楚明明白白。另外,中視圖部分最好單獨(dú)出來,放在新建一個(gè)文件夾目錄下,并被名為引用,把其他邏輯部分放后者。 whay write this: 很多小白在看過很多教程之后仍然在敲代碼的時(shí)候不清楚應(yīng)該以什么樣的步驟進(jìn)行,那么這篇文章就一步一步分解整個(gè)過程,慢...

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

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

0條評(píng)論

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