js Object.assign 讲解
时间: 2023-11-29 12:47:49 浏览: 62
`Object.assign()` 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,并返回目标对象。它接受一个目标对象和一个或多个源对象作为参数,并按照参数列表的顺序依次处理每个源对象。如果多个源对象具有相同的属性,则后面的属性会覆盖前面的属性。
以下是一个使用 `Object.assign()` 方法的例子:
```javascript
const target = { a: 1, b: 2 };
const source = { b: 4, c: 5 };
const result = Object.assign(target, source);
console.log(result); // { a: 1, b: 4, c: 5 }
```
在这个例子中,`target` 对象是目标对象,`source` 对象是源对象。`Object.assign()` 方法将 `source` 对象的属性复制到 `target` 对象中,并返回 `target` 对象。由于 `source` 对象具有与 `target` 对象相同的属性 `b`,因此 `source` 对象的 `b` 属性覆盖了 `target` 对象的 `b` 属性。
相关问题
js Object.assign源码
Object.assign源码如下所示:
```javascript
function assign(target, ...sources) {
if (target == null) {
throw new TypeError('Cannot convert undefined or null to object');
}
var to = Object(target);
for (var i = 0; i < sources.length; i++) {
var nextSource = sources[i];
if (nextSource != null) {
for (var nextKey in nextSource) {
if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
to[nextKey = nextSource[nextKey];
}
}
}
}
return to;
}
```
在这段代码中,Object.assign函数接受一个目标对象target和一个或多个源对象sources作为参数。首先,我们将目标对象进行转换,确保它是一个对象类型。然后,通过遍历源对象的属性,将属性的值赋给目标对象的对应属性。需要注意的是,如果源对象的属性是不可枚举的,那么它将不会被合并到目标对象中。最后,函数返回合并后的目标对象。
这个源码的作用是将多个源对象的属性合并到目标对象中,并返回合并后的目标对象。通过使用Object.assign,我们可以方便地实现对象属性的合并操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [js中 关于 Object.assign的讲解 (觉得会用就行了嘛?你不知道的东西在这里,一位重视 js 基础的前端小菜鸟...](https://blog.csdn.net/yunchong_zhao/article/details/108824105)[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: 100%"]
[ .reference_list ]
js中Object.assign()
在JavaScript中,Object.assign()方法用于将一个或多个源对象的可枚举属性的值复制到目标对象中,并返回目标对象。该方法的语法为Object.assign(target, ...sources),其中target是目标对象,而sources是一个或多个源对象。
当使用Object.assign()方法时,如果源对象和目标对象有相同的属性名,后面的源对象的属性值将会覆盖前面的属性值。例如,如果有两个源对象obj1和obj2,其中obj1的name属性为"zhangsan",obj2的name属性为"yunchong",那么使用Object.assign()方法后的目标对象的name属性值将为"yunchong"。
就像在引用的代码示例中所展示的一样,Object.assign()方法可以用来创建一个目标对象的浅拷贝。使用Object.assign({}, obj)可以将obj对象的属性复制到一个新的空对象中,并返回该新对象。
总而言之,JavaScript中的Object.assign()方法是用来复制源对象的可枚举属性到目标对象中的方法。它可以用于创建目标对象的浅拷贝,并且在合并属性时后面的源对象会覆盖前面的属性值。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [js中 关于 Object.assign的讲解 (觉得会用就行了嘛?你不知道的东西在这里,一位重视 js 基础的前端小菜鸟...](https://blog.csdn.net/yunchong_zhao/article/details/108824105)[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%"]
- *3* [js的Object.assign用法示例分析](https://download.csdn.net/download/weixin_38711643/13133673)[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 ]
阅读全文