在调用解构对象参数的函数时,您希望使用哪种样式的传递属性。调用的函数具有签名
function constructDebugLog({
currentOS,
originalUserStashState,
userAgent,
}) { ...
哪种功能调用更明智
const { currentOS, originalUserStashState, userAgent } = store.getState()
constructDebugLog({ currentOS, originalUserStashState, userAgent })
.then(resolve)
.catch(reject)
constructDebugLog(store.getState())
.then(resolve)
.catch(reject)
调用getState()
提供了一个复杂的对象,但是由于接收函数将其分解,所以甚至需要像#1中那样进行说明吗?
答案 0 :(得分:0)
我认为这里的主要区别是作者的意图:
1)您想将一些与失效相关的属性传递给函数,因为它们都是来自同一数据源,这是一个巧合。
2)您传递状态。该函数解构意味着它仅访问状态的某些属性,但是作者认为将传递状态对象。
在这种情况下,我认为以后的版本适用,然后再使用该版本(这也使IMO的代码更具可读性)。
关于“性能”和“最佳实践”:
您对性能有疑问吗?如果没有,您为什么要打扰?如果是,则不是这两行的原因。
“最佳实践”总是被接受,我认为这两个版本都是有效的。