> echo "Welcome to My Tech Zone"

$ whoami

> Tech Explorer & Code Artist

$ ls social

> GitHub

> larryxue.dev

javascript 生成器和迭代器

前置知识

  1. 生成器函数会返回一种称为Generator的迭代器
  2. 迭代器是一个对象,定义一个序列,并在终止时返回一个返回值
  3. Symbol.iterator为每一个对象定义了默认的迭代器,可以被for..of循环使用
  4. yield* 用于委托给另一个generator或可迭代对象

代码

// 生成器函数gen1
function* gen1() {
yield 'y1';
yield 'y2';
yield 'y3';
}
// 生成器函数gen2
function* gen2() {
yield 'x1';
yield* gen1();
yield 'x3';
}
class Test {
constructor() {
this.persons = ['azoux1', 'azoux2', 'azoux3'];
}
*[Symbol.iterator]() { // 类支持迭代器方法,因此可以添加一个默认的迭代器
// yield* this.persons.entries();
yield* gen2();
}
}
let t = new Test();
for (let item of t) {
console.log(item); // 输出: x1 y1 y2 y3 x3
}
posted @   azoux  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示