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