no-iterator
Disallow the use of the __iterator__
property
__iterator__
属性是 SpiderMonkey 对 JavaScript 的扩展,可以用来创建与 JavaScript 的 for in
和 for each
结构兼容的自定义迭代器。然而,这个属性现在已经过时了,所以它不应该被使用。下面是一个例子,说明这曾经是如何工作的。
Foo.prototype.__iterator__ = function() {
return new FooIterator(this);
}
你应该使用 ECMAScript 6 迭代器和生成器来代替。
规则细节
这条规则的目的是防止因使用 __iterator__
属性而可能产生的错误,该属性在一些浏览器中没有实现。因此,只要遇到 __iterator__
属性,它就会发出警告。
使用此规则的错误示例:
Open in Playground
/*eslint no-iterator: "error"*/
Foo.prototype.__iterator__ = function() {
return new FooIterator(this);
};
foo.__iterator__ = function () {};
foo["__iterator__"] = function () {};
使用此规则的正确示例:
Open in Playground
/*eslint no-iterator: "error"*/
var __iterator__ = foo; // Not using the `__iterator__` property.
Version
This rule was introduced in ESLint v0.0.9.