每天做个总结吧,坚持就是胜利!
/**
@date 2021-07-12
@description Object.create使用小结
*/
壹(序)
Object.create用于生成一个新的对象,传入一个对象,传入的对象为新对象的原型。
在ES5的继承中,Object.create起到了关键作用,可参考JS的几种继承方式
但是Object.create是可以传入第二个参数的(可选),与Object.defineProperties的第二个参数一样
贰(第二个参数)
第一个参数很简单,就是指定新对象的原型,主要是第二个参数的使用
第二个参数需要传入一个对象,对象中是新对象新增的属性,同时可以设置此属性的一些描述符,对象属性具体可参考Object.defineProperty()小结
叁(使用)
const obj = {a: 1, b: 2};
let newObj = Object.create(obj); // {}
newObj.a; // 1
newObj.b; // 2
newObj.__proto__ === obj; // true
newObj = Object.create(obj, {
'a': {
value: 3,
writable: false
},
'b': {
get() {
return 4
}
}
});
newObj.a; // 3
newObj.b; // 4
newObj.a = 5;
newObj.a; // 3