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-模式的实现