1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-24 18:32:22 +00:00

edit module

This commit is contained in:
ruanyf 2015-09-04 09:13:45 +08:00
parent f704362ca9
commit ae9f668caa

View File

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