[github地址:https://github.com/ABCDdouyae…]
merge-descriptors (express原始碼依賴)
一個物件的屬性繼承另一個物件的屬性及其屬性描述符
用法
:mixin(繼承者, 被繼承者, 是否繼承者有該屬性的時候繼承【預設true不繼承】)
返回
:繼承後的新的物件
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時候,原物件又該屬性則沒有繼承被繼承者的屬性和屬性描述符
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