Generator 函数 ,是一个普通的函数, 有两个特征。一是,function关键字与函数名之间有一个星号*;二是,函数体内部使用yield表达式,定义不同的内部状态(yield在英语里的意思就是“产出”)。 最大特点就是可以交出函数的执行权(即暂停执行)。 { let tell = function (){ yield 'a'; yield 'b'+'d'; return 'c';//即该函数有三个状态:a,bd 和 return 语句(结束执行)。 } let k = tell();//调用Generator函数,不同的是,调用 Generator 函数后,该函数并不执行。 console.log(k.next()); //{value: "a", done: false} //执行,返回的也不是函数运行结果,而是一个指向内部状态的指针对象,也就是遍历器对象(Iterator Object)。//done属性的值false,表示遍历还没有结束。 console.log(k.next()); //{value: "bd", done: false} console.log(k.next()); //{value: "c", done: true} console.log(k.next()); //{value: undefined, done: true} }