2017-08-28 11 views
0

内部のパラメータを持つ関数、私はこのチュートリアルを以下のよオブジェクト

https://dev-blog.apollodata.com/tutorial-building-a-graphql-server-cddaa023c035

が、私の質問はアポロサーバに関するものではありません、それは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

のような機能を持つのでしょうか? – Salketer

+0

*オブジェクトリテラルを返す*オブジェクトメソッド*の一部であるa *ブロック* –

答えて

3

この構文はMethod Definitionsと呼ばれ、それはあなたが矢やfunctionキーワードを使用せずに、オブジェクトのプロパティとしてメソッドを宣言することができます。

この速記構文は、速記構文が代わりに無名関数の名前の関数を使用しても、ECMAScriptの2015年に

を導入gettersetter構文に似ています。 これらの名前付き関数は、匿名関数とは異なり、関数本体自体から呼び出すことができます。

var foo = { 
 
    bar() { // method definition 
 
    return "Hello world !"; 
 
    } 
 
}; 
 

 
console.log(foo.bar());

同じことを行うために、より通常の方法、質問は正確には何この

var foo = { 
 
    bar : function() { 
 
    return "Hello world !"; 
 
    } 
 
}; 
 

 
console.log(foo.bar());

関連する問題