Javascript Object.assign找不到声明的变量

Javascript Object.assign找不到声明的变量,javascript,object,Javascript,Object,我觉得我的问题很容易解决,但我看不出来。我有一件简单的事情要做,从另一个函数中获取myObject,并将其存储在我的存储对象中。为此任务,我创建了storageHandler函数。一切正常,但是Object.assign没有到达我先前在此函数中声明的'ID'。这很奇怪,因为我不知道如何告诉我的函数'ID'是变量,而不是字符串。我只希望它是{1212313:{…},但它给了我{ID:{…} 有人知道怎么修吗 let storage = {} const myObject = {

我觉得我的问题很容易解决,但我看不出来。我有一件简单的事情要做,从另一个函数中获取
myObject
,并将其存储在我的存储对象中。为此任务,我创建了
storageHandler
函数。一切正常,但是
Object.assign
没有到达我先前在此函数中声明的
'ID'
。这很奇怪,因为我不知道如何告诉我的函数
'ID'
是变量,而不是字符串。我只希望它是
{1212313:{…}
,但它给了我
{ID:{…}

有人知道怎么修吗

  let  storage = {}

  const myObject =  {       
  ID: '1223424525221',
  name: 'Thomas',
  mail: 'example@example.com'
  }


  storageHandler = data => {
    const {ID} = data;
    
    Object.assign(storage, {ID: data})
    console.log(storage)
  }

  storageHandler(myObject)

您正在使用字符串作为属性名称。使用诸如
[ID]
之类的计算属性名,而不是
ID
。Computed属性允许将表达式计算为对象的属性名称

let存储={};
常量myObject={
ID:'1223424525221',
姓名:'托马斯',
邮件:'example@example.com',
};
storageHandler=(数据)=>{
const{ID}=数据;
赋值(存储,{[ID]:data});
控制台日志(存储);
};

storageHandler(myObject)
您应该使用
ID
的值作为对象的键,使用
[]

Object.assign(存储,{[ID]:data})

这是因为在javascript中

a = { b: 1 };

a = { "b": 1 };
您应该将Object.assign()更改为以下内容

storage[ID] = data;

如果要设置单个属性,为什么不只设置
存储[ID]=data
?看来你把事情搞得太复杂了。@Taplar是的,我只是不知道这种方式,谢谢你告诉我。还有一份