利用迭代器生成一个遍历方法: let arr1 = [1, 2, 3, 11, 22, 13, 24]; function forOf(arr, callback) { // 找到迭代器函数 let iterator = arr[Symbol.iterator]; // 调用迭代器函数(注意this指向),得到迭代器对象 let it = iterator.call(arr); let obj; // 迭代器的方法next();返回一个对象:value:指向每一项,done:boolean。(是否遍历完,完成过后值为true) while (!(obj = it.next()).done) { callback(obj.value); } } forOf(arr1, (v) => console.log(v + 1));//遍历输出数组arr1中每一项的值+1。 生成器函数: function* yield function* genFn() { console.log(555); yield 444; console.log(666); yield 666; console.log(777); } //生成器函数调用得到生成器: let gen = genFn();
console.log(gen.next()); console.log(gen.next()); console.log(gen.next());