跳至內容

eslint/no-iterator 限制

🚧 自動修復功能仍在開發中。

作用

禁止使用 __iterator__ 屬性

為什麼這樣不好?

__iterator__ 屬性是 SpiderMonkey 對 JavaScript 的擴充,可以用來建立與 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);
};

參考資料

以 MIT 授權釋出。