【问题标题】:How to pass object as an argument to a function which requires three arguments? [duplicate]如何将对象作为参数传递给需要三个参数的函数? [复制]
【发布时间】:2021-05-25 18:51:30
【问题描述】:

我有一个函数,例如:

function calculateSize(first, second, third) { ... }

我想向它传递一个如下所示的对象:

const values = {
  first: {
    width: 100,
    height: 100
  },
  second: {
    width: 100,
    height: 100
  },
  third: {
    width: 100,
    height: 100
  }
};

我怎样才能以最简洁的方式做到这一点?

【问题讨论】:

  • 最安全的方法是先做const { first, second, third } = values,然后调用calculateSize(first, second, third)
  • 如果您希望有一个“智能”解决方案,那就没有了。

标签: javascript


【解决方案1】:

将对象值传播到函数调用中。

calculateSize(...Object.values(values));

【讨论】:

  • 重要的是要注意这仅在您不关心参数的顺序时才有效
  • 当然可以——Object.values 确实有保证的顺序,给定一个对象,除了少数病态的情况。由于 OP 对象的值是按所需顺序定义的,因此它会起作用。
  • 好吧,我们知道对象“看起来像*”,但不能保证在某个时候没有添加或删除一个或另一个属性。我倾向于依赖属性排序来制作一些建筑细节的工作是一个相当冒险的想法。
【解决方案2】:

你可以这样写:

function calculateSize({first, second, third}) { ... }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 2021-04-15
    相关资源
    最近更新 更多