解构的key名和自己定义的变量名冲突怎么办呢

结构的data 和我在全局定义的data重名了怎么办,全局有大量data一一去改不大可能,所以怎么解决呢,谢谢

function getSummaries(param) {
  const { columns, data } = param;
  const sums = [];
  ...
  ...
  data.cloneTotal = sums;
  return sums;
}
阅读 2.1k
2 个回答

方法1,重命名解构变量

const { data: localData } = param;

方法2,加一层代码块

在代码块外先用一个临时变更引用全局变量,再在代码块内使用局部 data

const globalData = data;
{
    const { data } = param;
}

示例代码

const data = [1, 2, 3, 4];

function getSomething(param) {
    // 方法1
    const { data: localDataa } = param;
    console.log("local data", localDataa);

    // 方法2
    const globalData = data;
    {
        const { data } = param;
        console.log("global data", globalData);
        console.log("block local data", data);
    }
}

getSomething({ data: [5, 6, 7] });

已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。

解构赋值重命名:

var {a:aa} = {a: 3};
console.log(aa); // 3
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题