2017-06-21 10 views
5

私はreact-jsonschema-formのコードを調べていました。私は理解できない次の行に出くわしました。JavaScriptの構文を理解できません

var formData = (0, _utils.getDefaultFormState)(schema, props.formData, definitions); 

第1括弧内のコンテンツは、引数(schema、props.formDataなど)が渡される関数とはどのようにして機能しますか?

+0

最初のカッコ '()'は3つの引数を受け入れる関数を返します。 – Jai

+2

'(n0、n1、...、n)'という式は 'n'と評価されますので、あなたの場合は' _utils.getDefaultFormState'関数を使用してください。なぜこれが使われているかについては、私は確信していません – Phil

+1

あなたのコメントはあなた自身の権利の答えとして価値があるでしょう。 –

答えて

1

この質問に対する答えは、最初の式(0,_utils.getDefaultFormState)ではcomma,演算子が最後の引数を評価して返します。

したがって、カンマ演算子は左から右へオペランドを操作し、最後のの式の中で最も評価されたオペランドを返します。

しかし、これは関数とその戻り値を使用する点で異なります。

// sample from MDN. 
function myFunc() { 
    var x = 0; 

    return (x += 1, x); // the same as return ++x; 
} 

iはコメントで述べたように:

の第1ブラケットは、自己実行中の関数であり、それは3つの以上の引数を受け取り_utilsオブジェクト、の関数として、値の返し。

1

この文脈では、最初の括弧のペアは、その値が最後の式の値であるステートメントのシーケンスです。次に:

(0,_utils.getDefaultFormState) 

は、objet _utils.getDefaultFormStateを返します。これは、次の引数で呼び出されます。

関連する問題