首页 > 解决方案 > 函数的 Javascript 语法,Internet Explorer <= 11 (vuejs) 中的问题

问题描述

Internet Explorer <= 11 上的此代码不起作用(仅在边缘有效)

Bus.$on('UpdateCartData', (event) => {
  this.cart = event.cart;
  this.cart_options = event.cart_options;
});

说 SCRIPT1002:语法错误

当我通过 Babel polyfill 对其进行转换时,建议将其转换为:

Bus.$on('UpdateCartData', function (event) {

因为这不再显示语法错误,但即使在 Google Chrome 上,逻辑和功能也停止工作。

有什么想法该怎么做?

标签: javascriptvue.jssyntax

解决方案


重复的链接帮助我理解了结构。

“在 ECMA 脚本 6 中定义,箭头函数采用封闭(函数或全局)范围的 this 绑定。”

所以应该是:

var vm = this;
      Bus.$on('UpdateCartData', function (event) {
        vm.cart = event.cart;
        vm.cart_options = event.cart_options;
      });
}

推荐阅读