code: function applyMixins(derivedCtor, ...baseCtors) {
      baseCtors.forEach(baseCtor => {
          let sim = !!baseCtor.prototype ? baseCtor.prototype : baseCtor.__proto__;
          if(!!sim){
              Object.getOwnPropertyNames(sim).forEach(name => {
                  if(!!derivedCtor.prototype){
                      try{
                          derivedCtor.prototype[name] = sim[name];
                      }catch(e){}
                  }
                  else if(!!derivedCtor.__proto__){
                      try{
                          derivedCtor.__proto__[name] = sim[name];
                      }catch(e){}
                  }
              })
          }
      }); 
      return derivedCtor;
  }
docs: Mixin函数，用于多个类之间的方法注入
  
  @noet 后者强制覆盖前者的同名方法, 但构造函数无法覆盖
  @note 对属性复制不会成功（get set），尚不清楚原因所在