mirror of
https://github.com/ruanyf/es6tutorial.git
synced 2025-05-27 20:32:21 +00:00
修改generator和class
This commit is contained in:
parent
ab9f7a9e82
commit
560cc6272a
@ -67,7 +67,20 @@ export var year = 1973;
|
||||
|
||||
```
|
||||
|
||||
上面是profile.js,ES6将其视为一个模块,里面用export关键字输出了三个变量。其他js文件就可以通过import关键字加载这个模块(文件)。
|
||||
上面是profile.js,ES6将其视为一个模块,里面用export关键字输出了三个变量。export的写法,除了像上面这样,还有另外一种,两者是等价的。
|
||||
|
||||
```javascript
|
||||
|
||||
// profile.js
|
||||
var firstName = 'David';
|
||||
var lastName = 'Belle';
|
||||
var year = 1973;
|
||||
|
||||
export {firstName, lastName, year}
|
||||
|
||||
```
|
||||
|
||||
使用export定义模块以后,其他js文件就可以通过import关键字加载这个模块(文件)。
|
||||
|
||||
```javascript
|
||||
|
||||
|
@ -11,6 +11,7 @@ Generator函数就是普通函数,但是有两个特征。一是,function关
|
||||
function* helloWorldGenerator() {
|
||||
yield 'hello';
|
||||
yield 'world';
|
||||
return 'ending';
|
||||
}
|
||||
|
||||
var hw = helloWorldGenerator();
|
||||
@ -30,7 +31,7 @@ hw.next()
|
||||
// { value: 'world', done: false }
|
||||
|
||||
hw.next()
|
||||
// { value: undefined, done: true }
|
||||
// { value: 'ending', done: true }
|
||||
|
||||
hw.next()
|
||||
// { value: undefined, done: true }
|
||||
@ -43,9 +44,9 @@ hw.next()
|
||||
|
||||
第二次调用,函数从上次yield语句停下的地方,一直执行到下一个yield语句。next方法返回的对象的value属性就是当前yield语句的值world,done属性的值false,表示遍历还没有结束。
|
||||
|
||||
第三次调用,函数从上次yield语句停下的地方,一直执行到函数结束。next方法返回的对象的value属性就是函数最后的返回值,由于上例的函数没有return语句(即没有返回值),所以value属性的值为undefined,done属性的值true,表示遍历已经结束。
|
||||
第三次调用,函数从上次yield语句停下的地方,一直执行到return语句(如果没有return语句,就执行到函数结束)。next方法返回的对象的value属性,就是紧跟在return语句后面的表达式的值(如果没有return语句,则value属性的值为undefined),done属性的值true,表示遍历已经结束。
|
||||
|
||||
第四次调用,此时函数已经运行完毕,next方法返回与前一次一样的值,value属性为undefined,done属性为true。以后再调用next方法,返回的都是这个值。
|
||||
第四次调用,此时函数已经运行完毕,next方法返回对象的value属性为undefined,done属性为true。以后再调用next方法,返回的都是这个值。
|
||||
|
||||
总结一下,Generator函数使用iterator接口,每次调用next方法的返回值,就是一个标准的iterator返回值:有着value和done两个属性的对象。其中,value是yield语句后面那个表达式的值,done是一个布尔值,表示是否遍历结束。
|
||||
|
||||
|
@ -30,7 +30,7 @@ ECMAScript是JavaScript语言的国际标准,JavaScript是ECMAScript的实现
|
||||
|
||||
2013年12月,ECMAScript 6草案发布。然后是12个月的讨论期,听取各方反馈。
|
||||
|
||||
2014年12月,ECMAScript 6预计将发布正式版本。
|
||||
2015年6月,ECMAScript 6预计将发布正式版本。
|
||||
|
||||
ECMA的第39号技术专家委员会(Technical Committee 39,简称TC39)负责制订ECMAScript标准,成员包括Microsoft、Mozilla、Google等大公司。TC39的总体考虑是,ES5与ES3基本保持兼容,较大的语法修正和新功能加入,将由JavaScript.next完成。当前,JavaScript.next指的是ES6,当第六版发布以后,将指ES7。TC39估计,ES5会在2013年的年中成为JavaScript开发的主流标准,并在今后五年中一直保持这个位置。
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user