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

Javascript 解构对象像参数一样传递给函数,javascript,ecmascript-6,object-destructuring,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' /

不知道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所需输出将访问如下参数:

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中获取参数对象,并对其进行分解以准备使用?

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

函数foo…args{ 常量{arg1,arg2}=args this.model=arg1; this.model=arg2; //等等。。。
};似乎在一个单一的var和解构是相反的。源对象是非结构化的,不是真的,因为在对使用多少变量进行非结构化时,必须明确说明。但你为什么要这么做?将参数对象分解为每个键的新变量在功能上似乎与单独引用每个键相同-例如,本质上是arg1=args.arg1后跟this.model=arg1,并且仅执行此操作。model=args.arg1在功能上是等效的,但只需缩短一步。我想第二种方法更详细一点,但我不认为您在这方面会失去太多的清晰度。您可以将args分配给以下函数:函数fooargs{Object.assignthis,args;}@vlaz关于点表示法,您是对的。我只是想知道是否可以避免使用额外的“args.”符号。这是为了将args.arg1、args.arg2减少为:arg1 arg2,依此类推。但我明白你的意思say@NinaScholz这也是一个好方法。不幸的是,并不是所有的属性都被指定给一个唯一的对象this.model