将对象或定位参数传递给函数

时间:2017-07-30 15:14:03

标签: javascript ecmascript-6

现在可以像这样构造函数参数:

function add({a, b}) { return a + b; }

可以这样调用:

add({a: 5, b: 9});

是否也可以将它与位置参数结合起来,这样也可以在不命名参数的情况下调用它。 E.g:

add(5, 9);

1 个答案:

答案 0 :(得分:3)

您可以使用rest parameter,并根据其长度对其进行解构。

function add(...args) {
  let a, b;
  
  args.length === 1 ? ({ a, b } = args[0]) : [a, b] = args;
  
  return a + b;
};

console.log(add({a: 5, b: 9}));
console.log(add(5, 9));