如果我具有如下方法签名:
const myFunction = ({ property1, property2, property3 }) => ...
有没有办法我也可以抓住父对象?否则我必须写这个:
const myFunction = myObject => {
const { property1, property2, property3 } = myObject
}
答案 0 :(得分:2)
如果您愿意使用传统功能而不是箭头功能,则可以使用arguments
对象来获得此功能:
function test({a, b}) {
console.log(a);
console.log(b);
console.log(arguments[0]);
}
test({
a: 'This is a',
b: 'This is b',
});
(您无法在arrow函数中执行此操作,因为arrow函数没有自己的arguments
绑定,它们在周围的上下文中封闭了它们,就像this
和[ super
。)
答案 1 :(得分:0)
在下面的示例中,您可以通过解构来访问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}})