这个段代码什么意思?
来源:3-17 Generator

慕运维5828042
2017-05-04
function* foo(x) { var y = 2 * (yield (x + 1)); var z = yield (y / 3); return (x + y + z); } var a = foo(5); a.next() // Object{value:6, done:false} a.next() // Object{value:NaN, done:false} a.next() // Object{value:NaN, done:true} var b = foo(5); b.next() // { value:6, done:false } b.next(12) // { value:8, done:false } b.next(13) // { value:42, done:true }
问一下,a.next()第一次调用时为啥value值是6?
写回答
1回答
-
快乐动起来呀
2017-05-05
generator函数执行的时候遇到yield或者return暂停,并将紧挨着的表达式返回作为value的值,所以这里返回6是没问题的哈
012017-06-05
相似问题