mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-24 10:22:23 +00:00
edit module
This commit is contained in:
parent
f704362ca9
commit
ae9f668caa
@ -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"`。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user