像参数一样传递给函数的解构对象

时间:2019-01-10 13:56:38

标签: javascript ecmascript-6 object-destructuring

不知道ES6是否可以。 我在一个项目中工作,该项目的功能是传递带有许多属性的对象。现在的代码如下:

function foo({arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8}){
   this.model = arg1;
   this.model = arg2;
   // and so on...
};
obj = {
    arg1: 'some',
    arg2: 'whatever',
    arg3: 'text'
    // and so on up to 8
    arg8: 'end text'
    }
foo(obj);

Mi DESIRED输出将尽可能访问如下参数:

function foo( {...args} ){ // not working
   this.model = arg1;
   this.model = arg2;
   // and so on...
};

obj = {
    arg1: 'some',
    arg2: 'whatever',
    arg3: 'text'
    // and so on up to 8
    arg8: 'end text'
    }
foo(obj);

所以问题是:函数是否有任何方法可以在单个var(args)中获取参数对象,并对其进行分解以准备使用?

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。 第一个是将所有的argumens存储在一个变量中然后销毁它

function foo(...args){
  const  { arg1, arg2 } = args
   this.model = arg1;
   this.model = arg2;
   // and so on...
};

function foo({ arg1, arg2 }){
   this.model = arg1;
   this.model = arg2;
   // and so on...
};