Es6C - 生成器函数及新增class类

生成器函数
1.生成器函数是在普通定义的函数之前加一个星号 *
2.关键字yield  //暂停当前函数的运行
3.调用生成器函数的时候会生成一个迭代器,需要用var 变量名=函数名( 赋的值 )
4.来看生成器函数具体返回值,多次用函数名.next(),直到返回结果为true代表运行结束
具体的使用我们来看一下:
运行结果如下:
除此以外,生成器函数它的返回值/迭代器,还能够接受参数:
在生成器函数内部,用不同的变量保存了返回值
在输出结果的时候,我们将next方法里面传入了不同的参数
运行结果如下:
结果分析:
由于next的参数表示上一次的传入参数的返回值,所以第一次的next参数不论传入什么数都是无效的
1.第一次返回的6,因为foo函数调用的时候赋值为5,所以x = 5,函数体中有yield,直接返回5+1,与前面的2还有后面的z都无关,与第一个next(3)也无关,输出结果为6
2.第二次返回的是8,因为这时是第二次使用next方法,要看next中传入的参数12,第二次传入的12就表示y中的yield式子中的返回值,y = 2 * 12,及为24;再将24带入到z的式子中去,24 / 3 = 8,因为有yield,所以输出结果为8
3.第三次返回的是42,这时是第三次使用next的方法,此时z中的式子就是next第三次的参数13,即z = 13,所以返回x+y+z的值,即5+24+13 = 42,输出结果为42
以上就是生成器函数中next方法可以传参数和不传参数的两种方式
使用生成器函数,来编写斐波拉契数列:
即第三项是前两项的和,第四项是二三项的和,以此类推
运行结果如下:
下面调用中,var  f  =  feiBo ( );中写数值为多少就返回多少个数值
以上就是我们的生成器函数
Es6新增Class类
我们先来看一下它具体的语法,后续的课程中还会讲到类
运行结果如下:
- 写作不易,大家多多关注,谢谢啦-
---web分享,分享的不只是web
(0)

相关推荐