CommonJS是在推行Node.js時(shí)建立的一個(gè)模塊化的規(guī)范制度共虑,他的模塊就指對(duì)象,輸入時(shí)必須查找對(duì)象的屬性,就像用Node.js書寫代碼一樣:
let {stat , exists , readFile } = require('fs');//這條語句的實(shí)質(zhì)是先整體加載fs模塊则奥,然后在使用時(shí)用到3個(gè)方法考润,被稱為“運(yùn)行時(shí)加載”。
ES6模塊不是對(duì)象读处,而是通過export命令顯式指定輸出代碼糊治,輸入時(shí)采用靜態(tài)命令的形式:
Iimport {stat , exists , readFile } from 'fs';//這條語句實(shí)質(zhì)是只加載fs模塊的3個(gè)方法,被稱為“編譯時(shí)加載”罚舱;
1.export
export命令用于規(guī)定模塊的對(duì)外接口井辜,import命令用于輸入其他模塊的功能;export命令可以出現(xiàn)在模塊的任何位置管闷,只要不處于快級(jí)作用域內(nèi)就好粥脚。
export * from "....." //代表輸出文件地址所指文件內(nèi)所有的屬性和方法,但不包括默認(rèn)方法
2.import
通過import來加載輸出的模塊包个。
import接收一個(gè)對(duì)像刷允,里面指定變量名必須與被導(dǎo)入的對(duì)外接口名稱相同;
整體加載:import * as circle from './circle';circle.area();circle.x();
3.module
module用來達(dá)到整體輸入模塊的作用碧囊;
module circle from './circle';?
4.export default
export default ?function(){.........}
import circle(任意起的函數(shù)名) ?from “...”
export default function circle(){...................}
import circle from "............"
5.模塊之間的繼承
6.ES6模塊加載的實(shí)質(zhì)
common.js輸出的是值的拷貝树灶,而ES6輸出的是值的引用