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

我想弄清楚两者之间有什么区别;


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


let foo = { bar() {} };

我不清楚为什么代码使用括号


const actions = ({

  setCounter ({ commit }, obj) {

    commit(MAIN_SET_COUNTER, obj)

  }

})

我尝试过的;


我假设为 IFEE 但我不明白它是如何工作的


我假设为函数声明的简写


摇曳的蔷薇
浏览 249回答 1
1回答

蝴蝶刀刀

您展示的前两个示例在语义上是相同的。在这两种情况下,都foo被分配了一个带有方法定义的对象文字。大括号没有区别。正如评论所暗示的那样,var foo = 1;与var foo = (1);. 在第三个示例中,它们也不是必需的。请注意,它们也不是错误。有一些例子,这些大括号会有所作为,但它们不是你展示的那些。想到的一些:从箭头函数返回一个对象,简写版本:let foo = () => ({});,区别于空代码块。将代码块与独立对象区分开来,例如在控制台中:{} + [];vs({}) + [];IIFE,将函数声明语句转换为表达式:(function f(){})();,而function f(){}();将导致错误。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript