diff --git a/docs/module.md b/docs/module.md index aef2fb0..6deacfb 100644 --- a/docs/module.md +++ b/docs/module.md @@ -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"`。