为了账号安全,请及时绑定邮箱和手机立即绑定

es6中yield和yield*有什么区别?

es6中yield和yield*有什么区别?

qq_花开花谢_0 2018-09-03 13:13:55
一个*号的区别吗?
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

两者都是返回 iterator 的一个元素,不过

yield 的返回值是当作一个元素
yield* 的返回值是一个 iterator,会依次返回这个 iterator 中的每个元素

举例

function* sub() {    for (let i = 65; i < 70; i++) {        yield String.fromCharCode(i);
    }
}function* main() {    yield "begin";    yield sub();    // 返回的是 sub() 的结果,一个对象
    yield "---------";    yield* sub();   // 依次返回 sub() 结果的的每一项
    yield "end";
}for (var v of main()) {    console.log(v);
}


https://img1.sycdn.imooc.com/5baf73fa0001df5a01040151.jpg

查看完整回答
反对 回复 2018-09-29
  • 1 回答
  • 0 关注
  • 1341 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信