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

Merge pull request #203 from xcatliu/patch-14

Fix coding style in docs/module.md
This commit is contained in:
Ruan YiFeng 2016-05-19 19:55:48 +08:00
commit 7d773f5280

View File

@ -91,7 +91,7 @@ export {firstName, lastName, year};
export命令除了输出变量还可以输出函数或类class
```javascript
export function multiply (x, y) {
export function multiply(x, y) {
return x * y;
};
```
@ -350,7 +350,7 @@ import {crc32} from 'crc32';
// modules.js
function add(x, y) {
return x * y;
};
}
export {add as default};
// 等同于
// export default add;
@ -402,7 +402,7 @@ export default 42;
export default class { ... }
// main.js
import MyClass from 'MyClass'
import MyClass from 'MyClass';
let o = new MyClass();
```
@ -499,7 +499,7 @@ $ node main.js
4
```
ES6模块的运行机制与CommonJS不一样它遇到模块加载命令`import`不会去执行模块而是只生成一个动态的只读引用。等到真的需要用到时再到模块里面去取值换句话说ES6的输入有点像Unix系统的”符号连接“,原始值变了,`import`输入的值也会跟着变。因此ES6模块是动态引用并且不会缓存值模块里面的变量绑定其所在的模块。
ES6模块的运行机制与CommonJS不一样它遇到模块加载命令`import`不会去执行模块而是只生成一个动态的只读引用。等到真的需要用到时再到模块里面去取值换句话说ES6的输入有点像Unix系统的“符号连接”,原始值变了,`import`输入的值也会跟着变。因此ES6模块是动态引用并且不会缓存值模块里面的变量绑定其所在的模块。
还是举上面的例子。
@ -545,7 +545,7 @@ baz
上面代码表明ES6模块不会缓存运行结果而是动态地去被加载的模块取值并且变量总是绑定其所在的模块。
由于ES6输入的模块变量只是一个”符号连接“,所以这个变量是只读的,对它进行重新赋值会报错。
由于ES6输入的模块变量只是一个“符号连接”,所以这个变量是只读的,对它进行重新赋值会报错。
```javascript
// lib.js
@ -571,7 +571,7 @@ function C() {
};
this.show = function () {
console.log(this.sum);
}
};
}
export let c = new C();
@ -616,7 +616,7 @@ var a = require('a');
通常,“循环加载”表示存在强耦合,如果处理不好,还可能导致递归加载,使得程序无法执行,因此应该避免出现。
但是实际上,这是很难避免的,尤其是依赖关系复杂的大项目,很容易出现`a`依赖b`b`依赖`c``c`又依赖`a`这样的情况。这意味着,模块加载机制必须考虑“循环加载”的情况。
但是实际上,这是很难避免的,尤其是依赖关系复杂的大项目,很容易出现`a`依赖`b``b`依赖`c``c`又依赖`a`这样的情况。这意味着,模块加载机制必须考虑“循环加载”的情况。
对于JavaScript语言来说目前最常见的两种模块格式CommonJS和ES6处理“循环加载”的方法是不一样的返回的结果也不一样。