[英]What is the difference between let foo = ({bar() {}}) and let foo = {bar() {}}?
我想弄清楚两者之间有什么区别;
let foo = ({ bar() {} });
和
let foo = { bar() {} };
我不清楚为什么代码使用括号
const actions = ({
setCounter ({ commit }, obj) {
commit(MAIN_SET_COUNTER, obj)
}
})
我尝试了什么;
我假设为 IFEE,但我不明白它是如何工作的
我假设为 function 声明的简写
您展示的前两个示例在语义上是相同的。 在这两种情况下, foo
都被分配了一个带有Method definition的 object 文字。 牙套没什么区别。 正如评论所暗示的那样, var foo = 1;
等同于var foo = (1);
. 在第三个示例中,它们也不是必需的。 请注意,它们也不是一个错误。
有一些例子,这样的大括号会有所作为,但它们不是你展示的那些。 想到的一些:
从箭头 function 返回 object,简写版本: let foo = () => ({});
, 区别于空代码块。
将代码块与独立的 object 区分开来,例如在控制台中: {} + [];
与({}) + [];
IIFE,将 function 声明语句转换为表达式: (function f(){})();
, 而function f(){}();
会导致错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.