gpt4 book ai didi

javascript - let foo = ({bar() {}}) 和 let foo = {bar() {}} 有什么区别?

转载 作者:行者123 更新时间:2023-12-02 22:33:45 30 4
gpt4 key购买 nike

我试图找出两者之间的区别;

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

let foo = { bar() {} };

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

const actions = ({
setCounter ({ commit }, obj) {
commit(MAIN_SET_COUNTER, obj)
}
})

我尝试过的;

  • 我假设为 IFEE,但我无法理解它是如何工作的

  • 我假设为函数声明的简写

最佳答案

您显示的前两个示例在语义上是相同的。在这两种情况下,foo 都被分配了一个带有 Method definition 的对象文字。 。带括号没有什么区别。正如注释所示,var foo = 1;var foo = (1); 相同。在第三个示例中,它们也不是必需的。请注意,它们也不是错误。

有一些例子,这些大括号会产生影响,但它们不是您所展示的。我想到的一些:

  • 从箭头函数返回对象,简写版本:let foo = () => ({});,与空代码块不同。

    <
  • 区分代码块和独立对象,例如在控制台中:{} + [];({}) + [];

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

关于javascript - let foo = ({bar() {}}) 和 let foo = {bar() {}} 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58807390/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com