以下代码代表什么?

时间:2017-04-21 07:16:00

标签: javascript

const getActions = () => [
  require('./add'),
  require('./sub'),
  require('./mul'),
  require('./div')
];
module.exports = (func, actions= getActions());

在上面的代码中,我们在[]中添加了四个require语句。究竟是什么意思? 我们再次在module.exports中调用相同的函数getActions()。

有人能解释这种语法的基本内容及其目的吗?

1 个答案:

答案 0 :(得分:2)

第一部分定义了分配给常量getActions的函数。该函数是一个简明箭头函数,返回一个包含调用require四次结果的数组。 ([]是一个数组初始值设定项。)

第二部分(导出部分)使用逗号运算符来评估func标识符(请注意,它没有调用它,没有();这有点奇数),然后调用getActions并将其结果分配给actions。然后,结果也会分配给module.exports,因为赋值的结果是赋值,而逗号运算符的结果是通过计算右手操作数得到的值。

例如,除了const位之外,这里使用旧式function并且没有逗号运算符,分成其部分(但保留顺序):

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