Javascript 为什么对象使用'Symbol.iterator',而不仅仅是'iterator'`

Javascript 为什么对象使用'Symbol.iterator',而不仅仅是'iterator'`,javascript,Javascript,对象是否使用属性Symbol.iterator,而不仅仅是iterator,以防止我们覆盖对象原型上的iterator属性 如果是,还有其他原因吗 只要试着理解JS中的符号。如果它只是迭代器,它可能会破坏旧代码,这些代码包含名为迭代器的方法的对象。类似地,每当JS的设计者想要让开发人员向他们的对象添加其他特殊方法时,他们就会冒着破坏现有名称和破坏现有代码的风险 另一种选择是Python的\uuu double\u下划线约定,在该约定中,开发人员不应该定义这样命名的方法。如果它只是迭代器,它可能会

对象是否使用属性
Symbol.iterator
,而不仅仅是
iterator
,以防止我们覆盖对象原型上的
iterator
属性

如果是,还有其他原因吗


只要试着理解JS中的符号。

如果它只是
迭代器
,它可能会破坏旧代码,这些代码包含名为
迭代器
的方法的对象。类似地,每当JS的设计者想要让开发人员向他们的对象添加其他特殊方法时,他们就会冒着破坏现有名称和破坏现有代码的风险


另一种选择是Python的
\uuu double\u下划线
约定,在该约定中,开发人员不应该定义这样命名的方法。

如果它只是
迭代器
,它可能会破坏具有名为
迭代器的方法的对象的旧代码。类似地,每当JS的设计者想要让开发人员向他们的对象添加其他特殊方法时,他们就会冒着破坏现有名称和破坏现有代码的风险


另一种选择是Python的
\uuu double\u下划线
约定,开发者不应该定义这样的方法。

这里的讨论和链接不错:这里的讨论和链接不错: