2017-04-21 166 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;