如何通过解构赋值获取对象方法的返回值?
如何通过解构赋值直接获取对象方法的返回值
你设想的const {property, getFunctionValue: getFunction()} = object;这种直接在解构语法里调用方法并赋值的写法,JavaScript并不支持,但可以用几种简洁的方式达到同样的效果:
方法一:解构后立即调用(推荐)
这是可读性最佳的方式,先解构出方法,再调用它获取返回值:
const object = { property: 10, getFunction() { return "getFunction value"; } }; const { property, getFunction } = object; const getFunctionValue = getFunction(); console.log("Property: ", property, " getFunctionValue: ", getFunctionValue);
输出:
Property: 10 getFunctionValue: getFunction value
方法二:一行内完成解构与调用
如果想把逻辑压缩到一行,可以结合对象展开和解构,先创建临时对象将原方法替换为其返回值,再进行解构:
const { property, getFunction: getFunctionValue } = { ...object, getFunction: object.getFunction() }; console.log("Property: ", property, " getFunctionValue: ", getFunctionValue);
方法三:跳过方法解构,直接调用
如果不需要保留原方法的引用,也可以直接解构属性后调用对象的方法:
const { property } = object; const getFunctionValue = object.getFunction();
内容的提问来源于stack exchange,提问作者Thomas Zimmermann
相关产品推荐
相关产品推荐

