是否有快捷方式可以在保留对象的同时解构对象属性?



如果我有一个方法签名,如下所示:

const myFunction = ({ property1, property2, property3 }) => ...

有没有办法也可以抓取父对象?否则我必须写这个:

const myFunction = myObject => {
const { property1, property2, property3 } = myObject
}

如果您愿意使用传统函数而不是箭头函数,则可以使用arguments对象来获取以下内容:

function test({a, b}) {
console.log(a);
console.log(b);
console.log(arguments[0]);
}
test({
a: 'This is a',
b: 'This is b',
});

(你不能在箭头函数中这样做,因为箭头函数没有自己的arguments绑定,它们在周围的上下文中关闭一个绑定,就像它们在this和[相关的情况下]super一样。

在下面的示例中,您可以通过解构访问x&y属性并cords本身:

const drawCircle = ({cords, cords: {x,y},radius}) =>
console.log(cords, x, y, radius)
const circle = {
cords: {
x: 18,
y: 30
},
radius: 50
}
drawCircle(circle)

它有点笨拙,但您可以通过调用函数来获取整个对象:

drawCircle({circle})

并像这样解构对象:

({circle, circle: {cords, cords: {x, y}, radius}})

最新更新