【问题标题】: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%20functionscaniuse.com 是回答有关浏览器功能兼容性问题的绝佳来源

标签: javascript html cross-browser syntax-error compatibility


【解决方案1】:

箭头函数在IE、Safari等早期版本的浏览器中无法使用。所有ES6代码在这些浏览器版本上使用之前都应该使用babel或typescript进行转译。

【讨论】:

    猜你喜欢
    • 2017-03-06
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-04
    • 2021-11-07
    • 2018-06-08
    • 1970-01-01
    相关资源
    最近更新 更多