2017-04-21 7 views
0
const getActions =() => [ 
    require('./add'), 
    require('./sub'), 
    require('./mul'), 
    require('./div') 
]; 
module.exports = (func, actions= getActions()); 

上記のコードでは、[]内に4つのrequireステートメントを追加しました。これは正確に何を意味しますか? ここでも、module.exportsで同じ関数getActions()を呼び出しています。次のコードは何を表していますか?

この構文とその目的の基本は何ですか?

+0

親切[見てArrow Functions](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions) – Curiousdev

+0

getActionsは、require(route)によってロードされたモジュールの配列を持つ関数です。 Module.exportsは、最終的にgetActions()の結果によって作成されます。私はなぜ結果が右端の命令出力だけでなければならないのかを知りません。 – SerCrAsH

答えて

2

最初の部分は、定数getActionsに割り当てられた関数を定義します。この関数は簡略矢印関数で、requireを4回呼び出した結果の配列を返します。 ([]が配列初期化子である)

第二の部分(輸出部)func識別子を評価するために、コンマ演算子を使用している(それを呼び出していないことに注意して、全く()存在しない;ビット奇数です)、 getActionsに電話し、その結果をactionsに割り当てます。代入の結果が割り当てられた値であるため、結果はmodule.exportsに割り当てられ、コンマ演算子の結果は右手オペランドを評価した結果の値になります。 constビット以外の例えばので

は、ここではその古いスタイルfunctionとその部分に分けカンマ演算子、なしで(しかし、順序を保持)です:

function getActions() { 
    return [/*...the four require calls here...*/]; 
} 
func; 
actions = getActions(); 
module.exports = actions; 
関連する問題