Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

มิกซ์อินใน JavaScript


JavaScript ไม่สนับสนุนการสืบทอดหลายรายการ แต่บางครั้งก็จำเป็นต้องเพิ่มฟังก์ชันการทำงานของ 2 คลาสให้กับอ็อบเจกต์เดียว Mixin เป็นวิธีการเพิ่มคุณสมบัติให้กับวัตถุโดยไม่ต้องใช้การสืบทอด

ตัวอย่างเช่น สมมติว่าเรามีคลาสบุคคล และเราต้องการให้ผู้คนสามารถพูดสวัสดีได้ เราสามารถสร้าง sayHiMixin และใช้มันเพื่อทำให้ผู้คนทักทาย −

ตัวอย่าง

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();

ผลลัพธ์

Hello John

ไม่มีมรดกที่เกี่ยวข้องที่นี่ เรากำลังคัดลอกคุณสมบัติจากวัตถุหนึ่งไปยังอีกวัตถุหนึ่ง คลาสบุคคลยังสามารถสืบทอดจากคลาสอื่นในขณะที่ใช้มิกซ์อินนี้