edit module

This commit is contained in:
ruanyf
2015-09-04 09:13:45 +08:00
parent f704362ca9
commit ae9f668caa
+4 -2
View File
@@ -9,16 +9,18 @@ ES6的Class只是面向对象编程的语法糖,升级了ES5的构造函数的
ES6模块的设计思想,是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。CommonJS和AMD模块,都只能在运行时确定这些东西。比如,CommonJS模块就是对象,输入时必须查找对象属性。
```javascript
var { stat, exists, readFile } = require('fs');
let { stat, exists, readFile } = require('fs');
```
上面代码的实质是整体加载`fs`模块(即加载`fs`的所有方法),然后使用时用到3个方法。这种加载称为“运行时加载”。
ES6模块不是对象,而是通过export命令显式指定输出的代码,输入时也采用静态命令的形式。
```javascript
import { stat, exists, readFile } from 'fs';
```
所以,ES6可以在编译时就完成模块编译,效率要比CommonJS模块高。
上面代码的实质是从`fs`模块加载3个方法,其他方法不加载。这种加载称为“编译时加载”,即ES6可以在编译时就完成模块编译,效率要比CommonJS模块的加载方式高。
需要注意的是,ES6的模块自动采用严格模式,不管你有没有在模块头部加上`"use strict"`