Object.create使用小结

119 阅读1分钟

每天做个总结吧,坚持就是胜利!

    /**
        @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