JS 中 Symbol.iterator 是什么
时间: 2024-04-22 19:24:41 浏览: 13
在 JavaScript 中,`Symbol.iterator` 是一个内置的符号(Symbol),它用于定义一个对象的默认迭代器(Iterator)。迭代器是一个对象,它提供了一个 `next` 方法,用于按需生成序列中的值。
使用 `Symbol.iterator` 可以使一个对象成为可迭代的(iterable),从而可以使用 `for...of` 循环或其他支持迭代器的语法来遍历对象的元素。
下面是一个简单的示例,演示如何使用 `Symbol.iterator` 创建一个可迭代对象:
```javascript
const myIterable = {
items: ['apple', 'banana', 'cherry'],
[Symbol.iterator]() {
let index = 0;
return {
next: () => {
if (index < this.items.length) {
return { value: this.items[index++], done: false };
} else {
return { done: true };
}
}
};
}
};
// 使用 for...of 遍历可迭代对象
for (const item of myIterable) {
console.log(item);
}
// 输出:
// "apple"
// "banana"
// "cherry"
```
在上面的示例中,我们创建了一个名为 `myIterable` 的对象,并在该对象上定义了一个 `Symbol.iterator` 方法。该方法返回一个迭代器对象,其中包含一个 `next` 方法。`next` 方法在每次调用时返回序列中的下一个元素。当没有更多的元素时,它返回 `{ done: true }`。
通过使用 `Symbol.iterator`,我们可以将一个对象转换为可迭代的,并使用 `for...of` 循环来遍历它的元素。