扩展运算符在对象得运用

工作记录

今天码代码得时候发现同事写的代码,引起好奇心,遂有此文
代码:

  • 请求方法
//项目基于avue,searchChange为搜索促发事件,onLoad为页面首次或者被调用促发事件
//params为搜索参数,对象格式:{ }; done结束搜索方法
data(){
   return{
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0,
      },
}
},

methods:{
        searchChange(params, done) {
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    
    onLoad(page, params = {}) {
      this.loading = true;
      //初始化搜索参数
      let values = {
        name: '',
        sex: '',
        idCard: '',
        oldManType: '',
        liveAddress: '',
      }
     // Object.assign(values, params))将searchChange传过来的参数和values合并
      getList(page.currentPage, page.pageSize, Object.assign(values, params)).then(res => {
        const data = res.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
      });
    },
}
  • 网络请求
export const getList = (current, size, params) => {
  return request({
    url: '/office/oldMan/list',
    method: 'get',
    params: {
      ...params,
      current,
      size,
    }
  })
}

Object.assign(values, params))实际上向getList方法传递一个对象: …params将合并后得对象逐个取出放到params里面:
params: {
current:xxx,
size:xxx,
name:xxx,
sex:xxx,
idCard: xxx,
oldManType:xxx,
liveAddress: xxx
}
问题:扩展运算符是不能遍历没有部署遍历器数据,怎么在…obj加上{}就可以使用了:{…obj}?
待补充
{…obj}属于深拷贝


版权声明:本文为m0_46581222原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。