【发布时间】:2017-12-23 02:34:23
【问题描述】:
我有一个在 Chrome/Firefox 上完美运行的箭头功能,但我还需要它在 IE11 上运行,我不知道还能做什么。
Here 你可以看到 IE11 不支持箭头函数,所以我尝试将我的代码从 ES6 更改为 ES5 here 因为我读到这样做可以解决问题(在链接上你可以还要检查我的代码 :) 以删除箭头功能。
Object.entries 也不支持,我仍然需要它。 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/entries
所以我尝试使用上面链接的 polyfill,但它使用的 Reflect 也不支持。 https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Reflect
有什么想法吗?我真的迷失了 IE11 开发。 PD:代码仍在 Chrome/Firefox 上运行。
【问题讨论】:
-
您需要一个 transpiler 将您的 ES6 代码转换为旧版浏览器可以理解的“oldschool” JS。
-
您已确定需要做的事情:使用受支持的功能。您有特定问题吗? (听起来你可以把它变成一个关于如何在 ES5 中重现
Object.entries的问题,但就目前而言,它的定义很差而且太宽泛)。 -
如果你想支持旧版浏览器,你必须编写在旧版浏览器中工作的代码。 ES6 中的所有新方法都可以用其他方式编写,使您的代码可以在旧版浏览器中运行。
-
为什么您使用的功能甚至不是当前 ECMAScript (2017) 规范的一部分,并期望它们在 3 个 ECMAScript 版本之前发布的浏览器中工作?为 Object.entries 编写自己的 polyfill 应该不难。
标签: javascript ecmascript-6 ecmascript-5