修改generator和class

This commit is contained in:
ruanyf
2014-06-16 05:57:58 +08:00
parent ab9f7a9e82
commit 560cc6272a
3 changed files with 19 additions and 5 deletions
+14 -1
View File
@@ -67,7 +67,20 @@ export var year = 1973;
```
上面是profile.jsES6将其视为一个模块,里面用export关键字输出了三个变量。其他js文件就可以通过import关键字加载这个模块(文件)
上面是profile.jsES6将其视为一个模块,里面用export关键字输出了三个变量。export的写法,除了像上面这样,还有另外一种,两者是等价的
```javascript
// profile.js
var firstName = 'David';
var lastName = 'Belle';
var year = 1973;
export {firstName, lastName, year}
```
使用export定义模块以后,其他js文件就可以通过import关键字加载这个模块(文件)。
```javascript
+4 -3
View File
@@ -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属性的值为undefineddone属性的值true,表示遍历已经结束。
第三次调用,函数从上次yield语句停下的地方,一直执行到return语句(如果没有return语句,就执行到函数结束。next方法返回的对象的value属性就是紧跟在return语句后面的表达式的值(如果没有return语句,则value属性的值为undefined,done属性的值true,表示遍历已经结束。
第四次调用,此时函数已经运行完毕,next方法返回与前一次一样的值,value属性为undefineddone属性为true。以后再调用next方法,返回的都是这个值。
第四次调用,此时函数已经运行完毕,next方法返回对象的value属性为undefineddone属性为true。以后再调用next方法,返回的都是这个值。
总结一下,Generator函数使用iterator接口,每次调用next方法的返回值,就是一个标准的iterator返回值:有着value和done两个属性的对象。其中,value是yield语句后面那个表达式的值,done是一个布尔值,表示是否遍历结束。
+1 -1
View File
@@ -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开发的主流标准,并在今后五年中一直保持这个位置。