js Object.assign讲解
时间: 2023-08-18 17:05:42 浏览: 102
JavaScript中的Object.assign()方法用于将一个或多个源对象的属性复制到目标对象中。它的语法如下:
Object.assign(target, ...sources)
其中,target是目标对象,sources是一个或多个源对象。它会返回目标对象。
如果目标对象中已经存在某个属性,那么它会被源对象中的同名属性覆盖。如果源对象中有多个同名属性,那么后面的属性会覆盖前面的属性。
Object.assign()方法只会复制源对象自身的可枚举属性,不会复制继承的属性和不可枚举的属性。如果想复制所有属性,可以使用Object.getOwnPropertyNames()和Object.getOwnPropertySymbols()方法获取所有属性名,然后遍历复制。
相关问题
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 ]
阅读全文