【问题标题】:Javascript syntax []() and ()() [duplicate]Javascript 语法 []() 和 ()() [重复]
【发布时间】: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 这不是一个好的骗局。它涵盖了速记对象方法,但不包括计算属性键方面,也不包括()() 问题。

标签: javascript ecmascript-6


【解决方案1】:

答案在问题的评论中。不得不再次将它们复制出来,这样我就可以将问题标记为已回答并关闭它。

“不确定第一个是怎么回事。对于第二个,connect() 是一个返回函数的函数,因此第二个 () 是立即调用返回的函数。” – 衔尾蛇

“第一个是动态对象文字属性,也是一个对象方法。我觉得这根本不可读。我会重写那个。- Davin Tryon”

还有一个指向Computed property names 的链接,以便更清楚地了解 – Denys Séguret

谢谢各位。

【讨论】:

  • 我可以建议您将 cmets 重写为一致的答案.. 它会增加很多价值
  • 怀疑我们是否需要一个答案,因为个别问题在其他问题中都得到了很好的回答。
猜你喜欢
  • 1970-01-01
  • 2014-04-11
  • 2018-04-29
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
  • 1970-01-01
  • 2018-06-29
  • 2013-11-09
相关资源
最近更新 更多