我遵循本教程,
https://dev-blog.apollodata.com/tutorial-building-a-graphql-server-cddaa023c035
但我的问题不是关于apollo服务器,它只是使用javascript对象的一小部分;我想知道javascript的理论,这个块在对象内定义了什么:
author(root, args){
return { id: 1, firstName: 'Hello', lastName: 'World' };
}
上一个块就在这个对象中,但是我不知道javascript中关于这个定义的理论,究竟是什么?
const resolvers = {
Query: {
author(root, args){
return { id: 1, firstName: 'Hello', lastName: 'World' };
},
},
Author: {
posts(author){
return [
{ id: 1, title: 'A post', text: 'Some text', views: 2},
{ id: 2, title: 'Another post', text: 'Some other text', views: 200}
];
},
},
Post: {
author(post){
return { id: 1, firstName: 'Hello', lastName: 'World' };
},
},
};
export default resolvers;
答案 0 :(得分:3)
此语法称为Method Definitions,它允许您将方法声明为对象的属性,而不使用箭头或function
关键字。
此简写语法类似于ECMAScript 2015中引入的getter
和setter
语法。
简写语法使用命名函数而不是匿名函数。 与匿名函数不同,这些命名函数可以从函数体本身调用。
var foo = {
bar() { // method definition
return "Hello world !";
}
};
console.log( foo.bar() );
执行相同操作的更常用的方法是使用像这样的函数
var foo = {
bar : function() {
return "Hello world !";
}
};
console.log( foo.bar() );