对象是否使用属性 Symbol.iterator
而不仅仅是 iterator
来防止我们覆盖对象原型(prototype)上的 iterator
属性?
如果是,还有其他原因吗?
只是想了解 JS 中的符号。
最佳答案
如果它只是迭代器
,它可能会破坏具有名为迭代器
的方法的对象的旧代码。同样,每当 JS 设计者想要让开发人员向他们的对象添加其他特殊方法时,他们就会冒着破坏现有名称和破坏现有代码的风险。
另一种方法是 Python 的 __double_underscore__
约定,开发人员不应该定义这样命名的方法。
关于javascript - 为什么对象使用 `Symbol.iterator` ,而不是仅仅 `iterator`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53892196/