对象不支持属性或方法“jscomp_symbol_iterator0”

Object doesn't support property or method 'jscomp_symbol_iterator0'

本文关键字:symbol iterator0 jscomp 不支持 属性 方法 对象      更新时间:2023-09-26

我正在使用 babel 6.7 来构建一个单页 React.js Web 应用程序。我尝试包含所有相关的 polyfill,例如 babel-polyfill,以使其与 ES5 浏览器兼容。即使如此,我还是时不时地收到这样的javascript错误

Object doesn't support property or method 'jscomp_symbol_iterator0'

主要来自运行IE10+的Windows 7和8.1用户。

我假设这与不支持js Symbol.itirator有关。有没有办法为旧版浏览器填充它?

谢谢!

在我的情况下,错误:

对象不支持属性或方法"符号.迭代器"

指向与for循环的 ES6 语法相关的特定行。 即,我有这个:

for(let el of document.getElementsByClassName('especial-els')) { /* ... */ }

我需要做的就是将这个循环更改为"旧式"循环:

let especialEls = document.getElementsByClassName('especial-els');
for(let i = specialEls.length - 1; i >= 0; i--) { /* ... */ }

此错误仅发生在 Edge 浏览器中(不在 Chrome 中,也不发生在 Firefox 中),尤其是仅在此for(let i of iterator)循环中(我还有其他此类循环遍历数组并且错误没有显示)。我的猜测是document.getElementsByClassName()返回一个"特殊"迭代器。

您应该添加以下"require"语句:

require('core-js/es6/object');
require('core-js/es6/map');