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类也可以从另一个类继承。