JavaScript 花括号参数作为函数参数

JavaScript Curly braces argument as function parameter

我对 javascript 不是很有经验并且有一个关于函数参数周围使用的花括号的问题,因为它不是 JSON 结构。

我正在学习nuclear js,我找到了一些代码作为示例,但我不太理解-为什么"product"在大括号中?:

addToCart(product) {
    reactor.dispatch(ADD_TO_CART, { product })
}

感谢

这是一个 ES2015(也称为 ES6)shorthand 创建对象。

{ product } 等同于 { product: product }.

基本上,您最终会得到一个名为 "product" 的 属性 对象,它具有 product 变量的值。

const prop = "prop value";
const obj = { prop, anotherProp: "something else" }
console.log("obj: ", obj);

如果您需要更详细的解释,请查看at the MDN documentation and here

这是一种相对较新的语法,因此旧浏览器(例如 IE)可能会引发语法错误,但它开始在现代浏览器中得到很好的支持。在这里查看 the ES2015 compatibility table.

这是 ES6 shorthand 语法,用于定义与变量名称具有相同键的对象。

{product} 等同于 { product: product }.

Property Shorthand

MDN Docs