JavaScript中的Mixins
JavaScript不支持多重继承。但是有时需要将2个类的功能添加到单个对象。Mixin是一种在不使用继承的情况下将属性添加到对象的方法。
例如,假设我们有一个Person类。我们希望人们能够打声招呼。我们可以创建一个sayHiMixin并使用它来使人们打招呼-
示例
let sayHiMixin = {
sayHi() {
console.log(`Hello ${this.name}`);
},
sayBye() {
console.log(`Bye ${this.name}`);
}
};
class Person {
constructor(name) {
this.name = name;
}
}
//复制方法
Object.assign(Person.prototype, sayHiMixin);
new Person("John").sayHi();输出结果
Hello John
这里没有继承。我们只是将属性从一个对象复制到另一个对象。使用此mixin时,person类也可以从另一个类继承。