JavaScript中的生成器代码是一种特殊的函数,它可以生成迭代器对象。生成器代码通过使用yield关键字来指示生成器的状态。每次调用生成器函数时,它都会返回一个迭代器对象,该对象可以用于以惰性的方式逐步产生值。
生成器代码的语法类似于普通函数,但在函数体内部使用yield关键字来指定要生成的值。每次调用迭代器的next()
方法时,生成器代码将执行到下一个yield语句处,并返回一个包含yield后表达式的对象。该对象包含两个属性:value
表示生成的值,done
表示生成器是否已完成。当生成器达到函数末尾时,done
属性将为true,表示生成器已完成。
以下是一个简单的示例,演示了如何使用生成器代码:
function* generator() { yield 'Hello'; yield 'World'; yield '!'; } const iterator = generator(); console.log(iterator.next()); // { value: 'Hello', done: false } console.log(iterator.next()); // { value: 'World', done: false } console.log(iterator.next()); // { value: '!', done: false } console.log(iterator.next()); // { value: undefined, done: true }
在上面的示例中,生成器函数generator
通过使用yield关键字来生成三个值。然后,我们创建了一个迭代器对象iterator
,并通过调用其next()
方法来迭代生成器的值。每次调用next()
方法时,生成器代码执行到下一个yield语句处,并返回一个包含生成的值的对象。最后,当生成器代码执行完毕时,done
属性为true,表示生成器已完成。