【发布时间】: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 是回答有关浏览器功能兼容性问题的绝佳来源
标签: javascript html cross-browser syntax-error compatibility