param derivedCtor param constructors returns { void } export function applyMixins ( derivedCtor , constructors ) { constructors . forEach ( ( baseCtor ) => { Object . getOwnPropertyNames ( baseCtor . prototype ) . forEach ( ( name ) => { Object . defineProperty ( derivedCtor . prototype , name , Object . getOwnPropertyDescriptor ( baseCtor . prototype , name ) || Object . create ( null ) ) ; } ) ; } ) ; }