Javascripts set:Set.prototype.values()和Set.prototype [@@ iterator]()有什么区别?

问题描述 投票:0回答:1

我一直在研究Javascript集的最后一点(我认识的人都没有使用过它们)。其中一些方法是我梦objects以求的对象,但是我对值vs @@ iterator有疑问。

文档显示他们基本上做同样的事情:

Set.prototype.values()https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/values

Set.prototype @@ iteratorhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set/@@iterator

有人可以告诉我为什么您要在另一个上使用它,或者它们基本上是相同的(在我看来)?

谢谢! :)

编辑:拼写

javascript set
1个回答
0
投票

它们不仅在“基本”上相同,而且完全上相同:

Set.prototype.values === Set.prototype[Symbol.iterator] // true

在显式地在代码中创建迭代器时,您将使用.values()Symbol.iterator方法在iteration protocol中隐式使用,例如当您在集合上使用for … of循环时。

© www.soinside.com 2019 - 2024. All rights reserved.