zoukankan      html  css  js  c++  java
  • es6的next()理解

    看下这个简单的例子,弄懂了就知道next的执行流程了,偶尔得让脑子运动一下下

    总结的简单流程是:
    (1)执行next后会从上往下依次返回每个yield表达式的值,
    (2)如果next有传参的话,会整个覆盖掉将要返回当前yield的上一个yield,
    (3)方法内的yield表达式和return都执行完了,就会直接返回undefined了。
    所以它的流程才会是:
    入参  分析结果
    1  1(无论是否传参,传什么参数,返回第一个表达式的值1)
    3  3(返回第二个表达式的值yield a,a=上一个yield表达式yield 1,被参数3覆盖,所以a=3)
    4  4(返回第三个表达式的值yield b,b=上一个yield表达式yield a,被参数4覆盖,所以b=4)
    5  12(返回return a+b+c,c=上一个yield表达式yield b,被参数5覆盖,所以c=5,也就是a+b+c=3+4+5=12)
    这下没错了, 太不容易了
  • 相关阅读:
    几种常用类的学习
    类,接口
    方法
    数组使用
    条件控制与循环
    类型转换,运算符
    Java基本类型
    SVN基本使用
    【转】MySQL的btree索引和hash索引的区别
    常用命令(java、linux)
  • 原文地址:https://www.cnblogs.com/lightmusic/p/11541061.html
Copyright © 2011-2022 走看看