1、Object.assign(target, ...sources)
Object.assign() 方法用于将一个或多个源对象的属性复制到目标对象中。它只复制源对象自身可枚举的属性,同时也能够拷贝 getter 和 setter 函数
2、Object.create(proto[, propertiesObject])
Object.create() 方法创建一个新对象,使用现有的对象来提供新创建的对象的原型
Object.create() 创建的新对象具有指定的原型对象,但其自身并不包含任何属性。如果需要向新对象添加属性,可以使用 Object.defineProperty() 或 Object.defineProperties() 方法。
1、实现 Object.assign()
Object.prototype.my_assign = (target, ...args) => {
if (target === null || target === undefined) return;
target = Object(target);
args.forEach((item) => {
for (let key in item) {
if (item.hasOwnProperty(key)) {
target[key] = item[key];
}
}
});
return target;
};
使用
const my_assign_obj = Object.my_assign(null, { a: 1, c: 1 }, { a: 8, b: 2 });
console.log("my_assign_obj", my_assign_obj);
2、实现 Object.create()
Object.prototype.my_create = (photo) => {
function F() {}
F.prototype = photo;
return new F();
};
标签:target,对象,第八篇,create,Object,my,assign
From: https://www.cnblogs.com/caix-1987/p/17308246.html