⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

深入理解迭代器协议与自定义可迭代对象

探索 JavaScript 迭代器协议和可迭代协议的底层机制,学习如何创建自己的可迭代数据结构。 · 难度:入门 · +10XP

深入理解迭代器协议与自定义可迭代对象

在 JavaScript 中,for...of 循环和扩展运算符依赖于迭代协议。本教程将带你从零实现一个符合迭代器协议的对象,并解释 Symbol.iterator 的工作原理。你将学会如何让自定义的数据结构(如链表或树)支持迭代,从而利用 for...of 遍历。我们还会讨论迭代器的惰性求值优势,以及如何与生成器配合构建复杂的迭代逻辑。

class Range {
  constructor(start, end, step = 1) {
    this.start = start;
    this.end = end;
    this.step = step;
  }
  [Symbol.iterator]() {
    let current = this.start;
    const end = this.end;
    const step = this.step;
    return {
      next() {
        if (current <= end) {
          const value = current;
          current += step;
          return { value, done: false };
        }
        return { done: true };
      }
    };
  }
}
for (const n of new Range(1, 10, 2)) {
  console.log(n); // 1,3,5,7,9
}
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 231 篇
0 完成
🔥 0