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)
這下沒錯了,  太不容易了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM