在继承中,处理单一继承,还有多继承,若想在JS中实现多继承,就必须用到混合模式Mixin。其原理是用过对象的追加方法assign对目标对象追加要实现的类:
let Data = {
show: function() {
console.log('I am Data show funciton');
}
}
let User = {
getName: function() {
console.log(this.name + 'I am User getName function');
}
}
function Admin() {
}
Admin.prototype.setName = function(name) {
this.name = name;
}
Object.assign(Admin.prototype, User, Data);
let admin = new Admin();
admin.setName('张三');
admin.getName();
admin.show();
输出结果:
上述案例中,Admin同时实现了User和Data的方法,其原理是利用的Admin.prototype是一个对象,所以我们可以使用对象追加方法assign方法,将User和Data最佳到Admin的构造原型中,从而模拟实现了多继承。