Object.assign()方法怎么用
时间: 2023-06-05 12:07:09 浏览: 84
Object.assign()方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它接收一个目标对象作为第一个参数,后面是一个或多个源对象。语法如下:
Object.assign(target, ...sources)
其中,target表示要将属性复制到的目标对象,sources表示一个或多个源对象。
例如,我们有一个目标对象target和两个源对象source1和source2,我们可以使用如下代码将source1和source2的所有属性复制到target:
```
const target = { a: 1, b: 2 };
const source1 = { b: 3, c: 4 };
const source2 = { c: 5, d: 6 };
Object.assign(target, source1, source2);
console.log(target); // { a: 1, b: 3, c: 5, d: 6 }
```
在这个例子中,Object.assign()将source1和source2的所有属性(包括b,c)复制到target,并覆盖了target中相同属性的值。
相关问题
Object.assign方法
Object.assign()方法是一个对象的静态方法,用于将一个或多个源对象的可枚举属性的值复制到目标对象中,并返回目标对象。该方法实现的是浅拷贝,也就是说目标对象拷贝得到的是源对象的引用。语法为Object.assign(target, ...sources)。该方法可以用于对象属性的合并。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [Object.assign详解](https://blog.csdn.net/guxin_duyin/article/details/88916106)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [Object.assign()用法小结](https://blog.csdn.net/TurtleOrange/article/details/120563264)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
Object 方法 详细 Object.assign
`Object.assign()` 是一个 JavaScript 函数,用于将一个或多个源对象的属性复制到目标对象中。语法如下:
```javascript
Object.assign(target, ...sources)
```
其中,`target` 是目标对象,`sources` 是一个或多个源对象。它返回目标对象,即复制后的对象。
`Object.assign()` 方法将源对象的所有可枚举属性(包括原型链上的属性)复制到目标对象中,并返回目标对象。如果目标对象中已经存在该属性,则该属性将被覆盖。如果源对象具有相同的属性,则后面的源对象将覆盖先前的源对象。
`Object.assign()` 方法只复制源对象自身的可枚举属性。它不会复制源对象的原型链上的属性。
示例:
```javascript
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
Object.assign(target, source);
console.log(target); // { a: 1, b: 4, c: 5 }
```
在此示例中,源对象 `source` 中的属性 `b` 将覆盖目标对象 `target` 中的属性 `b`。`Object.assign()` 方法将 `c` 属性从源对象复制到目标对象中。
需要注意的是,`Object.assign()` 方法不会复制访问器属性的取值函数和存值函数,只会复制属性的值。如果源对象中有访问器属性,则目标对象中的相应属性将是一个普通的数据属性,其值是访问器属性的取值函数的返回值。
示例:
```javascript
const source = {
get foo() {
return 1;
},
};
const target = {};
Object.assign(target, source);
console.log(target.foo); // 1
```
在此示例中,源对象 `source` 中的属性 `foo` 是一个访问器属性。`Object.assign()` 方法将 `foo` 属性从源对象复制到目标对象中,但目标对象中的 `foo` 属性是一个普通的数据属性,其值是访问器属性的取值函数的返回值 `1`。