一個(gè)*號(hào)的區(qū)別嗎?
es6中yield和yield*有什么區(qū)別?
qq_花開(kāi)花謝_0
2018-09-03 13:13:55
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
兩者都是返回 iterator 的一個(gè)元素,不過(guò)
yield?的返回值是當(dāng)作一個(gè)元素
yield*?的返回值是一個(gè) iterator,會(huì)依次返回這個(gè) iterator 中的每個(gè)元素
function*?sub()?{????for?(let?i?=?65;?i?<?70;?i++)?{????????yield?String.fromCharCode(i); ????} }function*?main()?{????yield?"begin";????yield?sub();????//?返回的是?sub()?的結(jié)果,一個(gè)對(duì)象 ????yield?"---------";????yield*?sub();???//?依次返回?sub()?結(jié)果的的每一項(xiàng) ????yield?"end"; }for?(var?v?of?main())?{????console.log(v); }
舉報(bào)