【每日一包0029】merge-descriptors

[github地址:https://github.com/ABCDdouyae...]git

merge-descriptors (express源碼依賴)

一個對象的屬性繼承另外一個對象的屬性及其屬性描述符

用法:mixin(繼承者, 被繼承者, 是否繼承者有該屬性的時候繼承【默認true不繼承】)github

返回:繼承後的新的對象express

const mixin = require('merge-descriptors');

let a = {};
Object.defineProperty(a, 'name', {
    value:1,
    configurable: true, 
    enumerable: true, 
    writable: true, 
})
console.log(a);//{name: 1}

let b = {};
let c = mixin(b, a);
console.log(c);//{name: 1}
c.name = 2;
console.log(c, a);//{name: 2} {name: 1}

當第三個參數爲false時候,原對象又該屬性則沒有繼承被繼承者的屬性和屬性描述符ui

let d = {sex: 'woman', job: 'IT'};
Object.defineProperties(d, {
    sex: {
        get(){
            return 'man'
        }
    }
})

let e = {sex: '123'};
let f = mixin(e, d, false);
console.log(f.sex);//123
相關文章
相關標籤/搜索