1. 混入方式继承
之前我们都是一个子类继承一个父类,而混入方式继承是一个子类继承多个父类
这里,我们需要用到Object.assign()
它的作用就是可以把多个对象的属性和方法拷贝到目标对象中,若是存在同名属性的话,后面的会覆盖前面。(属于浅拷贝)
简单看个🌰:
const obj = {
name: 'andy',
colors: ['red', 'blue']
};
const obj2 = {
name:'nike'}
const obj3 = Object.assign(obj,obj2)
console.log(obj3) // {name: "nike", colors: Array(2)}
console.log(obj) // {name: "nike", colors: Array(2)}
可以看出Object.assign
返回一个新对象,这个新对象就是合并后的obj
来看看在继承上的应用的伪代码:
function Child () {
Parent.call(this)
OtherParent.call(this)
}
Child.prototype = Object.create(Parent.prototype)
// 把两个父类原型对象上的属性和方法进行合并
Object.assign(Child.prototype