我想弄清楚两者之间有什么区别;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(){}();
将导致错误。
添加回答
举报
0/150
提交
取消