JavaScript花括号作为函数参数

12

我对JavaScript并不是很熟悉,有一个关于花括号用于函数参数的问题,因为它不是JSON结构。

我正在学习Nuclear JS,并且发现了一些示例代码,但我不太理解为什么"product"在花括号里:

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

谢谢

2个回答

20
这是一种ES2015(也称为ES6)创建对象的简写方式。 { product } 相当于 { product: product }
基本上,你最终得到一个名为 "product" 的属性,其值为变量 product 的值的对象。
const prop = "prop value";
const obj = { prop, anotherProp: "something else" }
console.log("obj: ", obj);

如果您需要更详细的解释,请参阅MDN 文档此处

这是相对较新的语法,因此旧浏览器(例如 IE)可能会引发语法错误,但在现代浏览器中得到了广泛支持。请参见ES2015 兼容性表格


2

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

{product} 相当于 {product: product}

属性缩写

MDN文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接