一个ES6的模块是一个包含了js代码的文件。ES6里没有所谓的module关键字,一个模块就是一个一般的剧本文件,除了以下两个区分:
ES6中的模块自动开启严厉形式。
模块中能够运用import和export。
先来说说export,在模块中声明的任何东西都是默许私有的,假如想对其他模块public,必需将那部份代码export。最简朴的要领就是增加一个export关键字:
// kittydar.js
export function detectCats(canvas, options) {
var kittydar = new Kittydar(options);
return kittydar.detectCats(canvas);
}
export class Kittydar {
... several methods doing image processing ...
}
// This helper function isn't exported.
function resizeCanvas() {
...
}
...
不再有跨文件或跨模块的全局变量,export声明的那部份就是这个模块的public API。而在别的一个文件中,我们能够导入这个模块而且运用detectCat要领:
// demo.js - Kittydar demo program
import {detectCats} from "kittydar.js";
function go() {
var canvas = document.getElementById("catpix");
var cats = detectCats(canvas);
drawRectangles(canvas, cats);
}
假如须要导入多个模块中的接口,以下:
import {detectCats, Kittydar} from "kittydar.js";
我们也能够经由过程一行代码将本模块一切须要public的要领公然:
export {detectCats, Kittydar};
如许就不必一个个地增加export关键字了