为啥我的 javascript 箭头函数在 Edge/IE 中不起作用?
Posted
技术标签:
【中文标题】为啥我的 javascript 箭头函数在 Edge/IE 中不起作用?【英文标题】:Why are my javascript arrow functions not working in Edge/IE?为什么我的 javascript 箭头函数在 Edge/IE 中不起作用? 【发布时间】:2020-05-20 18:49:34 【问题描述】:我在 IE 和 Edge 中的 javascript 代码存在兼容性问题。它没有在我的类中正确检测箭头函数。
所以这对我来说在 Edge 中引发了一个错误,在一个类中:
class WebAPI
constructor()
replayCSV = () =>
console.log("test");
这是 Edge 上的错误: Edge Error
它在 IE 上本质上是相同的错误,只是出于相同的原因在不同的箭头函数上出现错误。
我正在使用箭头函数来处理某些嵌套引用问题,标准的东西。
你可以在这里看到完整的代码,都是 WIP 的东西:https://github.com/moothyknight/HEG_ESP32/blob/master/HEG_WIFI_BLE_Lolin32/webDemo/HEGwebAPI.js
【问题讨论】:
IE 不支持箭头函数。 caniuse.com/#feat=arrow-functions IE 完全不支持箭头函数;如果你需要它们在 IE 中工作,你必须使用像 Babel 这样的编译器来为你将它们转换为 ES5。 Edge 确实支持箭头函数,但不支持类字段,仅支持类方法(您需要将字段放入构造函数方法中,例如this.replayCSV = ...
)。所以你的选择是使用像 Babel 这样的编译器,完全避免 ES6 语法,或者不正确支持 IE/Edge。
根本不支持,如果您想减轻头痛,可以查看跨浏览器支持的转译。 “这不是功能,而是错误!等等,我没听错吧?” - IE
使用这个:caniuse.com/#search=arrow%20functions。 caniuse.com 是回答有关浏览器功能兼容性问题的绝佳来源
【参考方案1】:
箭头函数在IE、Safari等早期版本的浏览器中无法使用。所有ES6代码在这些浏览器版本上使用之前都应该使用babel或typescript进行转译。
【讨论】:
以上是关于为啥我的 javascript 箭头函数在 Edge/IE 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章