es6的模块化编程
基本用法
es6 中新增了两个命令 export 和 import , export 命令用于规定模块的对外接口,import 命令用于输入其他模块提供的功能。

一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个 变量,就必须使用export关键字输出该变量。下面是一个JS文件,里面使用export命令输出变量。

// math.js

export const add = function (a, b) {
    return a + b
}

export const subtract = function (a, b) {
    return a - b
}
exports & import
一个模块包含多个独立的子功能,如果需要公开相应的功能模块,直接用export关键字即可,来看一个例子:
// exports.js
export function foo(canvas, options) {
  //可以导出function
}
export class bar {
  //可以导出class
}
export {foo,bar} //可以是Object

导入模块
import {foo, bar} from "kittydar.js";
//重命名
import {foo as fooRename} from "kittydar.js";
import {bar as barRename} from "kittydar.js";
export default

ES6完全支持import语句从历史项目AMD或CommonJS模块化方案中导入模块。

//传统CommonJS写法
module.export = {
  field1: value1,
  field2: function(){
    //implements
  }
}
//ES6写法
//exportDefault.js
export default {
   field1: value1,
   field2: function(){
     //implements
   }
};

模块化(ES6最新定义的写码方式)。跟大家过去的那种写码方式相比,模块化有一些不同,具体来说:
  1. 模块需要用严格模式,这别无选择;
  2. 模块有一个顶级作用域,但不是全局作用域;
  3. 可以通过import从其他模块引入绑定;
  4. 可以通过export声明需要输出的绑定。