js Object.assign源码
时间: 2023-10-17 12:35:10 浏览: 113
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 ]
阅读全文