Object.assign()源码以及分析

更新时间:2023-05-18 19:13:30 阅读:12 评论:0

Object.assign()源码以及分析
官⽅:Object.assign() ⽅法⽤于将所有可枚举属性的值从⼀个或多个源对象分配到⽬标对象。它将返回⽬标对象
⽤法
const target ={ a:1, b:2};
const source ={ b:4, c:5};
const returnedTarget = Object.assign(target, source);
console.log(target);
秋姑娘// expected output: Object { a: 1, b: 4, c: 5 }
console.log(returnedTarget);飞机儿童画
杨虎城之死// expected output: Object { a: 1, b: 4, c: 5 }
源码
var _extends = Object.assign ||function(target){
for(var i =1; i < arguments.length; i++){//arguments为全部的对象集合
var source = arguments[i];//单个对象
家里财神怎样摆放更能招财
//遍历⼀个对象的⾃⾝和继承来的属性,
//常常配合hasOwnProperty筛选出对象⾃⾝的属性
for(var key in source){
全国房价排行
//使⽤call⽅法,避免原型对象扩展带来的⼲扰
if(Object.prototype.hasOwnProperty.call(source, key)){///判断是否为source⾃⾝的属性。(⾮继承)说明Object.assign只能加源对象的⾃⾝的属性,不算继承的。
target[key]= source[key];
}
}
}
return target;
};
注:
// arguments是⼀个伪数组,除了length属性和索引元素之外没有任何Array属性
// 官⽅:Object的hasOwnProperty()⽅法返回⼀个布尔值,判断对象是否包含特定的⾃⾝**(⾮继承)**属性。
var bbb ={
hasOwnProperty:function(){
return fal;
},
bar:'MABAOGUO'
};
// bbb.hasOwnProperty('bar'); // 始终返回 fal
({}).hasOwnProperty.call(bbb,'bar')// true
宝宝找数字
bbb.__proto__.hasOwnProperty.call(bbb,'bar');// true
危化企业>鬼屋作文Object.prototype.hasOwnProperty.call(bbb,'bar');// true
原因:相当于借⽤别的对象的hasOwnProperty⽅法

本文发布于:2023-05-18 19:13:30,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/913861.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:对象   属性   继承   摆放   是否   判断
相关文章
留言与评论(共有 0 条评论)
昵称:
匿名发表 登录账号
         
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图