Files
freeCodeCamp/guide/chinese/javascript/standard-objects/object/object-assign/index.md
T

2.4 KiB

title, localeTitle
title localeTitle
Object Assign 对象分配

对象分配

这是一个存根。 帮助我们的社区扩展它 。

这种快速风格指南有助于确保您的拉取请求被接受 。

Object.assign()方法用于1)向现有对象添加属性和值,2)创建现有对象的新副本,或3)将多个现有对象组合到单个对象中。 Object.assign()方法需要一个targetObject作为参数,并且可以接受无限数量的sourceObject作为附加参数。

这里需要注意的是始终会修改targetObject参数。如果该参数指向现有对象,则将同时修改和复制该对象。但是,如果希望在不修改原始对象的情况下创建对象的副本,则可以将空对象{}作为第一个(或targetObject)参数传递,将要复制的对象作为第二个(或sourceObject)参数传递。

如果作为参数传递给Object.assign()共享相同的属性(或键),则稍后在参数列表中出现的属性值将覆盖之前出现的属性值。

句法

Object.assign(targetObject, ...sourceObject) 

回报价值

Object.assign()返回targetObject。

例子

修改和复制targetObject

let obj = {name: 'Dave', age: 30}; 
 
 let objCopy = Object.assign(obj, {coder: true}); 
 
 console.log(obj); // returns { name: 'Dave', age: 30, coder: true } 
 console.log(objCopy); // returns { name: 'Dave', age: 30, coder: true } 

无需修改即可复制targetObject

let obj = {name: 'Dave', age: 30}; 
 
 let objCopy = Object.assign({}, obj, {coder: true}); 
 
 console.log(obj); // returns { name: 'Dave', age: 30 } 
 console.log(objCopy); // returns { name: 'Dave', age: 30, coder: true } 

具有相同属性的对象

let obj = {name: 'Dave', age: 30, favoriteColor: 'blue'}; 
 
 let objCopy = Object.assign({}, obj, {coder: true, favoriteColor: 'red'}); 
 
 console.log(obj); // returns { name: 'Dave', age: 30, favoriteColor: 'blue' } 
 console.log(objCopy); // { name: 'Dave', age: 30, favoriteColor: 'red', coder: true } 

更多信息:

MDN
ES6中的Object.assign简介(视频)