Symbol.iterator 是 JavaScript 中定义对象遍历行为的特殊属性,使对象可被 for...of、扩展运算符等使用;2. 它通过实现返回迭代器对象的方法,提供 next() 以逐步返回 {value, done} 结构,从而支持迭代协议。

Symbol.iterator 是 JavaScript 中用于定义对象遍历行为的特殊属性,它让一个对象变得“可迭代”,从而能被 for...of 循环、扩展运算符等语法直接使用。
当一个对象实现了 Symbol.iterator 方法后,JavaScript 引擎就知道这个对象可以被逐个访问其元素。该方法必须返回一个迭代器对象,这个迭代器需具备 next() 方法,用来逐步返回值。
只要对象有这个方法,就能在 for...of、Array.from、解构赋值等场景中正常使用。
给对象添加 Symbol.iterator 属性,通常通过以下方式:
立即学习“Java免费学习笔记(深入)”;
const myIterable = {
data: ['a', 'b', 'c'],
[Symbol.iterator]() {
let index = 0;
return {
next: () => {
if (index < this.data.length) {
return { value: this.data[index++], done: false };
} else {
return { done: true };
}
}
};
}
};
for (const item of myIterable) {
console.log(item); // 输出 a, b, c
}
JavaScript 内建的可迭代类型如数组、字符串、Map、Set 都默认实现了 Symbol.iterator。比如:
这些对象能被 for...of 使用,正是因为引擎在背后调用了它们的 Symbol.iterator 方法。
基本上就这些。Symbol.iterator 的存在统一了 JavaScript 中的遍历接口,让自定义对象也能融入语言级别的迭代生态。以上就是JavaScript 的 Symbol.iterator 属性在使对象可迭代过程中起何作用?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号