javascript - ES6箭头(=>)功能与IE不兼容?

标签 javascript angularjs

我正在我的 AngularJs 应用程序中测试以下代码,它在 Firefox 中运行良好,但 IE11 会引发箭头语法错误:

myApp.run((EventTitle, moment) => {
  EventTitle.weekView = event => `${moment(event.startsAt).format('hh:mm')} event.title`;
});

适用于 IE 的语法是什么?

最佳答案

IE11 不支持多项 ES6 功能,包括 lambda 函数和模板文字。

应该有效的粗略等效是:

myApp.run(function(EventTitle, moment) {
  EventTitle.weekView = function(event) {
     return moment(event.startsAt).format('hh:mm') + " " + event.title;
  };
});

但是,在某些方面,箭头函数的工作方式与常规函数不同。例如,您需要注意 this 关键字的使用。

或者,如果您使用像 Babel 这样的转译器(或者像 TypeScript 这样的转译语言),您可以使用较新的语言功能(例如原始代码),并自动生成可在不支持这些功能的浏览器中运行的 JavaScript 代码。

关于javascript - ES6箭头(=>)功能与IE不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41045690/

相关文章:

javascript - Angular : toggle image on ng-repeat

javascript - 将参数传递给 casperjs.start

javascript - base64的前缀 'data:image/png;base64,'对显示图像有影响吗?

javascript - 如何为音频文件数组的每个索引动态地将 src 值绑定(bind)到指令范围变量

css - 我如何使用 CSS Header Logo Swap 进行响应式 UI 的转换

javascript - 如何添加相当于 .mouseLeave 的触摸

javascript - Angular2 组件样式/css 未在 ngAfterViewInit 中被浏览器应用

javascript - 如何使用 jQuery 为 slimScroll 设置动画

javascript - 以编程方式将焦点放在 ng-grid 中的第一行

javascript - 在 AngularJS 中对两个以上字段求和并在另一个字段中显示结果