Javascript 如何使用object.assign()函数复制/覆盖对象?

Javascript 如何使用object.assign()函数复制/覆盖对象?,javascript,angular,Javascript,Angular,如何使用object.assign完全复制/覆盖对象? 如果有其他方法,我们将不胜感激 其目的是将现有对象更新为其新值 下面是我的代码片段,预期结果应该与object2的值相同 预期结果:{a:8,b:7} 常量对象1={ 答:1,, b:2, c:{ d:3 } }; 常量对象2={ a:8, b:7 }; Object.assignobject1、object2; console.logobject1 为了保持相同的对象引用,可以提前删除所有属性,然后使用指定所需的属性 常量object

如何使用object.assign完全复制/覆盖对象? 如果有其他方法,我们将不胜感激 其目的是将现有对象更新为其新值

下面是我的代码片段,预期结果应该与object2的值相同

预期结果:{a:8,b:7}

常量对象1={ 答:1,, b:2, c:{ d:3 } }; 常量对象2={ a:8, b:7 }; Object.assignobject1、object2;
console.logobject1 为了保持相同的对象引用,可以提前删除所有属性,然后使用指定所需的属性

常量object1={a:1,b:2,c:{d:3}; 常量object2={a:8,b:7}; Object.assign Object.keysobject1.reduceo,k=>Reflect.deletePropertyo,k,o,object1, 反对意见2 ;
console.logobject1 如果要使用object2中的属性覆盖object1属性,则需要如下操作:

object1 = Object.assign({}, object2);
但是有了这个,您需要用var关键字声明object1,这样您就可以为它分配一个新的值

演示:

var object1={ 答:1,, b:2, c:{ d:3 } }; 常量对象2={ a:8, b:7 }; object1=Object.assign{},object2;
console.logobject1;听起来您只是想复制object2并完全放弃现有的object1?你不应该使用Object.assign。注意,你不能完全替换object1,因为它是用const声明的。数组是从哪里来的?@KimCindy LikeI说,你需要将声明从const object1=更改为var object1=,检查我答案中的演示。是的,在我的项目中它没有声明为const。我试过了,但是源对象没有更新。嗨@Nina Scholz,我发现IE中不支持deleteProperty:还有其他选项在IE中也适用吗?它也不支持常量和箭头函数,也不支持object.assign.Wow!我试了另一个,结果成功了!再次非常感谢你!!!