这个'方法是什么' JS对象文字中的语法

时间:2017-03-02 17:12:03

标签: javascript syntax object-literal

使用ES6类糖,我们可以这样定义函数:

class Foo {
  constructor(props) {}
  ...
  myFn() {}     
} 

在JS对象文字中,我们可以像这样定义 getters setters

foo = {
  get data() {}
  set data(val) {}
}

但是,这种语法是什么:

foo = {
  data() {}
} 

这是对象数据属性吗?或者是getter / setter?

<子> 注意:此语法在Vue.js 2.0 doc中广泛使用,如新添加的render函数。

new Vue({
  render (h) {
    throw new Error('oops')
  },
  renderError (h, err) {
    return h('pre', { style: { color: 'red' }}, err.stack)
  }
}).$mount('#app')

2 个答案:

答案 0 :(得分:3)

它只是速记。 refer to MDN docs

// Shorthand method names (ES2015)
var o = {
  // doesnt need a colon!
  property([parameters]) {},
  get property() {},
  set property(value) {}
};

答案 1 :(得分:2)

foo = {
  data() {}
} 

的简写
foo = {
  data: function() {}
}