Computer >> Máy Tính >  >> Lập trình >> Javascript

Mixin trong JavaScript

JavaScript không hỗ trợ nhiều tính kế thừa. Nhưng đôi khi cần thêm chức năng của 2 lớp vào một đối tượng duy nhất. Mixin là một cách các thuộc tính được thêm vào các đối tượng mà không cần sử dụng tính năng kế thừa.

Ví dụ, giả sử chúng ta có một lớp Person. Và chúng tôi muốn mọi người có thể nói Xin chào. Chúng tôi có thể tạo sayHiMixin và sử dụng nó để khiến mọi người nói xin chào -

Ví dụ

let sayHiMixin = {
   sayHi() {
      console.log(`Hello ${this.name}`);
   },
   sayBye() {
      console.log(`Bye ${this.name}`);
   }
};
class Person {
   constructor(name) {
      this.name = name;
   }
}
// copy the methods
Object.assign(Person.prototype, sayHiMixin);
new Person("John").sayHi();

Đầu ra

Hello John

Không có sự kế thừa liên quan ở đây. Chúng tôi chỉ sao chép các thuộc tính từ đối tượng này sang đối tượng khác. Lớp người cũng có thể kế thừa từ lớp khác khi sử dụng mixin này.