eslint/no-iterator 限制
其功能
禁止使用 __iterator__
属性
为什么这样做是不好的?
__iterator__
属性是对 JavaScript 的 SpiderMonkey 扩展,它可用于创建与 JavaScript 的 for in 和 for each 构造兼容的自定义迭代器。但是,此属性现已过时,因此不应使用。下面是该属性以前如何运作的示例
js
Foo.prototype.__iterator__ = function () {
return new FooIterator(this);
};
示例
针对此规则的错误代码示例
javascript
Foo.prototype.__iterator__ = function () {
return new FooIterator(this);
};
foo.__iterator__ = function () {};
foo["__iterator__"] = function () {};
针对此规则的正确代码示例
js
const __iterator__ = 42; // not using the __iterator__ property
Foo.prototype[Symbol.iterator] = function () {
return new FooIterator(this);
};