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

标签 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 希望的输出将是访问如下参数:

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) 中获取参数对象并将它们解构以供使用吗?

最佳答案

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

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...
};

关于javascript - 解构对象像参数一样传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54130263/

相关文章:

javascript - Vue.js - 观察数据变化

javascript - Creative SDK Image Editor (Web) 加载图像,等待,然后图像消失(无实时预览)

javascript - 如何导入 webpack 子模块?

javascript - Reactjs:setState总是失败并在componentDidMount中返回undefined

javascript - 在发送到服务器之前在 JS 中准备对象?

javascript - 当我们通过 for..of 迭代它时,可以将参数传递给生成器吗?

javascript - 为什么在声明的对象上解构 ES6 会出现问题?

javascript - 从 Javascript 以编程方式触发 ng-change 事件

javascript - 对象解构花括号内的等号

javascript - 什么是解构赋值及其用途?