【发布时间】:2017-05-14 23:02:55
【问题描述】:
我无法理解这些 javascript 语法。在下面的代码块中,在第二行。方括号后面紧跟着一个圆括号或圆括号,我怀疑它们是用来获取参数的。我不明白这两个是如何被链接起来形成一个表达式的,它的含义是什么。
export const recipeCount = createReducer(0, {
[types.ADD_RECIPE](state, action){
return state + 1;
}
});
同样在这一行,connect 方法接受两个参数,(state) => {return {}} 和 mapDispatchToProps。然后它很快就跟在 () 后面,并带有一个参数。起初,我虽然是java中的一些对象转换,但这没有意义。
export default connect((state) => {return {}}, mapDispatchToProps)(AppContainer);
代码执行良好并产生预期结果。我只是不明白发生了什么。请帮助,很高兴得到答案以及我可以阅读的页面链接,以便更好地理解。谢谢。
【问题讨论】:
-
不确定第一个是怎么回事。对于第二个,
connect()是一个返回函数的函数,因此第二个()是立即调用返回的函数。 -
第一个是动态对象字面量属性,也是对象方法。我觉得这根本不可读。我会重写那个。
-
为了完全清楚,这里是documentation on Computed property names
-
这仍然很可怕。我无法相信这会以任何方式通过代码审查。
-
@Gothdo 这不是一个好的骗局。它涵盖了速记对象方法,但不包括计算属性键方面,也不包括
()()问题。