const actionsMap = {
[GET_USER]: (state, action) => ({ post: action.msg })
};
我发现了这段代码。在我一直使用箭头函数时,我见过{}的格式,但是这个()包装器是什么意思呢?
const actionsMap = {
[GET_USER]: (state, action) => ({ post: action.msg })
};
我发现了这段代码。在我一直使用箭头函数时,我见过{}的格式,但是这个()包装器是什么意思呢?
使用箭头函数时,可以选择使用单个语句或代码块作为函数体,这两者是等效的:
() => foo
() => {
return foo;
}
() => {post: action.msg}
,那么对象({}
)将被解释为一个主体块而不是一个对象。运行时会试图将其解析为相当于以下内容:function () {
post: action.msg
}
这是一个命名的标签和属性访问,对于此处并不合理。通过使用括号将其包裹,您向解析器提示它是一个需要评估的表达式,并且在单表达式体上使用fat箭头函数规则,使其等效于:
function () {
return {post: action.msg};
}
foo.reduce((p, c) => (c.counted = true, p += c.value));
counted 属性,然后将 c.value 添加到 p 中,并返回 p + = c.value 的结果作为 p 的新值。
括号在ECMAScript中包装表达式,并可与逗号运算符一起用于分组多个表达式。当计算分组时,返回最后一个表达式的结果。
例如:
var i = 0, j = 0;
console.log((j += 10, i += 2), j);
将打印2 10
,因为j
在()
组中被增加,并稍后打印。
(state, action) => ({ post: action.msg })
ES5function(state, action) {
return { post: action.msg };
}