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

在上面的代碼中,我們在[]中添加了四個require語句。這究竟意味着什麼? 我們再次調用module.exports中的相同函數getActions()。以下代碼代表什麼?

任何人都可以解釋這個語法和它的目的是什麼?

+0

請看看[箭頭函數](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions) – Curiousdev

+0

getActions是一個由require(route)加載的模塊數組的函數。 Module.exports最終將由getActions()結果組成。我不明白爲什麼「func」是一個「元組」,因此結果應該只是最右邊的指令輸出。 – SerCrAsH

回答

2

第一部分定義了一個分配給常數getActions的函數。該函數是一個簡潔的箭頭函數返回一個包含四次調用require的結果的數組。 ([]是數組初始化)

第二部分(出口部)使用逗號操作以評估func標識符(注意,這不是調用它,沒有();這是一個位奇),然後致電getActions並將其結果分配給actions。因爲賦值的結果是分配的值,並且逗號運算符的結果是評估其右側操作數的結果,所以結果也將被分配給module.exports

因此,例如,比const位之外,這裏是與舊式function,沒有逗號運算符,分解成各部分(但保留順序):

function getActions() { 
    return [/*...the four require calls here...*/]; 
} 
func; 
actions = getActions(); 
module.exports = actions;