为了账号安全,请及时绑定邮箱和手机立即绑定

let foo = ({bar() {}}) 和 let foo = {bar() {}}

let foo = ({bar() {}}) 和 let foo = {bar() {}}

摇曳的蔷薇 2021-12-23 19:26:40
我想弄清楚两者之间有什么区别;let foo = ({ bar() {} });和let foo = { bar() {} };我不清楚为什么代码使用括号const actions = ({  setCounter ({ commit }, obj) {    commit(MAIN_SET_COUNTER, obj)  }})我尝试过的;我假设为 IFEE 但我不明白它是如何工作的我假设为函数声明的简写
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

您展示的前两个示例在语义上是相同的。在这两种情况下,都foo被分配了一个带有方法定义的对象文字。大括号没有区别。正如评论所暗示的那样,var foo = 1;var foo = (1);. 在第三个示例中,它们也不是必需的。请注意,它们也不是错误。

有一些例子,这些大括号会有所作为,但它们不是你展示的那些。想到的一些:

  • 从箭头函数返回一个对象,简写版本:let foo = () => ({});,区别于空代码块。

  • 将代码块与独立对象区分开来,例如在控制台中:{} + [];vs({}) + [];

  • IIFE,将函数声明语句转换为表达式:(function f(){})();,而function f(){}();将导致错误。


查看完整回答
反对 回复 2021-12-23
  • 1 回答
  • 0 关注
  • 248 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号