Versions

no-iterator

Disallow the use of the __iterator__ property

__iterator__ 属性是 SpiderMonkey 对 JavaScript 的扩展,可以用来创建与 JavaScript 的 for infor 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.

Further Reading

Resources

更改语言