Dalam JavaScript kita hanya dapat mewarisi dari satu objek. Hanya ada satu Show Namun terkadang terasa membatasi. Misalnya, kita memiliki kelas Atau kami memiliki kelas 0 yang menerapkan pembuatan acara, dan kami ingin menambahkan fungsionalitas 0 ke User , sehingga pengguna kami dapat memancarkan acaraAda konsep yang bisa membantu disini, namanya "mixin" Sebagaimana didefinisikan di Wikipedia, mixin adalah kelas yang berisi metode yang dapat digunakan oleh kelas lain tanpa harus mewarisinya Dengan kata lain, mixin menyediakan metode yang mengimplementasikan perilaku tertentu, tetapi kami tidak menggunakannya sendiri, kami menggunakannya untuk menambahkan perilaku ke kelas lain Cara termudah untuk mengimplementasikan mixin dalam JavaScript adalah membuat objek dengan metode yang berguna, sehingga kita dapat dengan mudah menggabungkannya menjadi prototipe kelas apa pun Misalnya di sini mixin 3 digunakan untuk menambahkan beberapa "ucapan" untuk User
Tidak ada pewarisan, tetapi penyalinan metode sederhana. Jadi,
Mixin dapat memanfaatkan warisan itu sendiri Misalnya, di sini 3 mewarisi dari 7
Perhatikan bahwa panggilan ke metode induk _8 dari 3 (pada baris berlabel 0) mencari metode dalam prototipe mixin, bukan kelasIni diagramnya (lihat bagian kanan) Itu karena metode 1 dan 2 awalnya dibuat di 3. Jadi, meskipun disalin, properti internal 4 referensi 3, seperti yang ditunjukkan pada gambar di atasKarena _6 mencari metode induk di 7, itu berarti mencari 8, bukan 9Sekarang mari kita buat mixin untuk kehidupan nyata Fitur penting dari banyak objek browser (misalnya) adalah mereka dapat menghasilkan peristiwa. Acara adalah cara yang bagus untuk "menyiarkan informasi" kepada siapa saja yang menginginkannya. Jadi mari kita buat mixin yang memungkinkan kita dengan mudah menambahkan fungsionalitas terkait acara ke kelas/objek apa pun
Setelah menambahkan mixin, objek _8 akan dapat membuat acara 9 saat pengunjung masuk. Dan objek lain, katakanlah, _0 mungkin ingin mendengarkan acara semacam itu untuk memuat kalender untuk orang yang masukAtau, _1 dapat menghasilkan peristiwa 2 saat item menu dipilih, dan objek lain dapat mengatur penangan untuk bereaksi terhadap peristiwa itu. Dan seterusnyaIni kodenya
Penggunaan
Sekarang, jika kita ingin kode bereaksi terhadap opsi menu, kita dapat mendengarkannya dengan Dan mixin Mixin – adalah istilah umum untuk pemrograman berorientasi objek. kelas yang berisi metode untuk kelas lain Beberapa bahasa lain memungkinkan pewarisan berganda. JavaScript tidak mendukung banyak pewarisan, tetapi mixin dapat diimplementasikan dengan menyalin metode ke dalam prototipe Kita bisa menggunakan mixin sebagai cara untuk menambahkan kelas dengan menambahkan beberapa perilaku, seperti penanganan event seperti yang telah kita lihat di atas Mixin dapat menjadi titik konflik jika mereka secara tidak sengaja mengganti metode kelas yang ada. Jadi umumnya orang harus memikirkan dengan hati-hati tentang metode penamaan mixin, untuk meminimalkan kemungkinan itu terjadi |