传递完整对象ala对象会破坏良好做法/是否会对性能产生影响?

时间:2019-06-07 21:41:05

标签: javascript performance optimization standards

在调用解构对象参数的函数时,您希望使用哪种样式的传递属性。调用的函数具有签名

function constructDebugLog({
  currentOS,
  originalUserStashState,
  userAgent,
}) { ...

哪种功能调用更明智

1

const { currentOS, originalUserStashState, userAgent } = store.getState()
constructDebugLog({ currentOS, originalUserStashState, userAgent })
    .then(resolve)
    .catch(reject)

2

constructDebugLog(store.getState())
    .then(resolve)
    .catch(reject)

调用getState()提供了一个复杂的对象,但是由于接收函数将其分解,所以甚至需要像#1中那样进行说明吗?

1 个答案:

答案 0 :(得分:0)

我认为这里的主要区别是作者的意图

1)您想将一些与失效相关的属性传递给函数,因为它们都是来自同一数据源,这是一个巧合。

2)您传递状态。该函数解构意味着它仅访问状态的某些属性,但是作者认为将传递状态对象。

在这种情况下,我认为以后的版本适用,然后再使用该版本(这也使IMO的代码更具可读性)。

关于“性能”和“最佳实践”:

您对性能有疑问吗?如果没有,您为什么要打扰?如果是,则不是这两行的原因。

“最佳实践”总是被接受,我认为这两个版本都是有效的。