问题产生:
继承链如下:
我的Dog
对象实现了Animal
类的属性,但是我同时想继承Friendly
类。获取分享属性。
问题解决
实际上ES6的 class并不能实现多继承。我无法通过这种形式实现多继承:
网上找了许多mixmin的思路和想法,最终在阮一峰老师的博客内找到了解决方案:
function mix(...mixins) {
class Mix {
constructor() {
for (let mixin of mixins) {
copyProperties(this, new mixin()); // 拷贝实例属性
}
}
}
for (let mixin of mixins) {
copyProperties(Mix, mixin); // 拷贝静态属性
copyProperties(Mix.prototype, mixin.prototype); // 拷贝原型属性
}
return Mix;
}
function copyProperties(target, source) {
for (let key of Refl