2017-03-02 28 views
2

使用ES6类糖,我们可以定义函数是这样的:这是什么“的方法,像”语法JS对象字面

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

和JS对象常量,我们可以定义干将制定者这样的:

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

然而,这是什么语法:

foo = { 
    data() {} 
} 

该对象是数据属性吗?还是getters/setters?

注:该语法在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') 

回答

3

它只是简写。 refer to MDN docs

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

谢谢!多么愚蠢的问题(─.─||),在es5和es6搞砸时很容易丢失。 – Xlee

2
foo = { 
    data() {} 
} 

短手

foo = { 
    data: function() {} 
}