Javascript Vue是否需要计算属性和方法中的Function关键字?

Javascript Vue是否需要计算属性和方法中的Function关键字?,javascript,function,vue.js,vuejs2,Javascript,Function,Vue.js,Vuejs2,我在Vue文档中看到的计算属性和方法如下: export default { computed: { foo: function() { return 'foo'; } }, methods: { bar: function(x) { return 'bar ' + x; } } } 但是,我也看到函数关键字被省略。允许这样做吗?有什么缺点吗 export default { computed: { foo() { return 'foo'; }

我在Vue文档中看到的计算属性和方法如下:

export default {
  computed: {
    foo: function() { return 'foo'; }
  },
  methods: {
    bar: function(x) { return 'bar ' + x; }
  }
}
但是,我也看到
函数
关键字被省略。允许这样做吗?有什么缺点吗

export default {
  computed: {
    foo() { return 'foo'; }
  },
  methods: {
    bar(x) { return 'bar ' + x; }
  }
}

是的,这是允许的,从ES6开始

从ECMAScript 2015开始,介绍了对象初始值设定项上方法定义的较短语法。它是指定给方法名称的函数的缩写

const obj={
foo(){
返回“bar”;
}
};
log(obj.foo());
//预期输出:“巴”
缺点:

  • IE11不支持此语法
  • 您可能需要一个transpiler,比如在不受支持的环境中使用此语法

它们之间的唯一区别是速记函数不能用作
new
运算符()的构造函数。但是,这是在Vue对象内部,所以在这里不相关。您可以互换使用它们。