Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将对象作为参数传递给需要三个参数的函数?_Javascript - Fatal编程技术网

Javascript 如何将对象作为参数传递给需要三个参数的函数?

Javascript 如何将对象作为参数传递给需要三个参数的函数?,javascript,Javascript,我有一个函数,例如: function calculateSize(first, second, third) { ... } 我想给它传递一个物体,它看起来像这样: const values = { first: { width: 100, height: 100 }, second: { width: 100, height: 100 }, third: { width: 100, height: 100 } };

我有一个函数,例如:

function calculateSize(first, second, third) { ... }
我想给它传递一个物体,它看起来像这样:

const values = {
  first: {
    width: 100,
    height: 100
  },
  second: {
    width: 100,
    height: 100
  },
  third: {
    width: 100,
    height: 100
  }
};
function calculateSize({first, second, third}) { ... }

如何以最简洁的方式执行此操作?

将对象值分散到函数调用中

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

你可以这样写:

const values = {
  first: {
    width: 100,
    height: 100
  },
  second: {
    width: 100,
    height: 100
  },
  third: {
    width: 100,
    height: 100
  }
};
function calculateSize({first, second, third}) { ... }

重要的是要注意,只有当你不关心参数的顺序时,它才起作用,如果它是-
对象。给定一个对象,值
在所有情况下都有一个保证的顺序,只有少数病理情况除外。因为OP的对象的值是按所需的顺序定义的,所以它可以工作。我们知道对象“看起来是这样,但不能保证某个属性在某个时候没有被添加或删除。我倾向于认为依靠属性排序来完成一些建筑细节是一个相当危险的想法。最安全的方法是执行
const{first,second,third}=values
,然后调用
calculateSize(first,second,third)
。如果你希望得到一个“智能”解决方案,那么就没有了。