我正在我的 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/