es6 中定義 class,可以這樣
class A {
x = 1;
y = 2;
z = 3;
mx () { // ... }
my () { // ... }
mz () { // ... }
}
A 類別屬性方法越來越多的時候,發現整一個檔案的程式碼量很大。能否將一些屬性以及方法分割成單一文件 ( 例如 x 與 mx 分成一個 x.js 文件,y 與 my 分成一個 y.js 文件 ... )
如果使用 extends 時候,會發現問題,屬性沒辦法變成共享的,方法也是。
那能否在定義 class A 的時候再把( x.js / y.js / ... )結合到 A 內部去呢?
Mixin
模式簡而言之,就是把幾個類別的
prototype
屬性合併,最後那個大的類別再繼承這個合併了的類別就行了。阮一峰的ES6教學有個範例的程序,你可以參考參考:Mixin-模式的實作