有什么区别
function updateSomething(item) {}
和
function updateSomething({items}) {}
? 第一个中的 item 变量也可以是对象,为什么第二个使用对象表示法? 什么时候用前者,什么时候用后者?
最佳答案
这是来自 ES2015 的参数解构。在第二种情况下,您将局部变量初始化为参数的 items
属性的值。
function updateSomething({items}) {
大致相当于
function updateSomething(obj) {
var items = obj.items;
来自 MDN:Pulling fields from objects passed as function parameter
请注意,此语法在 Edge 或 Safari 中尚不可用(请参阅 compatibility map ),因此您可能希望使用类似 Babel 的转译器.
关于带有对象表示法的javascript函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37417717/