$ gnpm install create-mixin
Useful for achieving something resembling multiple-inheritence in Javascript.
const mixInto = require('create-mixin')
const EventEmitter = require('events')
class EmittingArray extends mixInto(EventEmitter)(Array) {}
Given these two classes.
class Base {
  constructor () {
    this.ranBaseConstructor = true
  }
  baseMethod () {
    return 1
  }
}
class Mixin {
  constructor () {
    this.ranMixinConstructor = true
  }
  someMethod () {
    return 2
  }
}
Create a new class mixing one class into another.
> const mixInto = require('create-mixin')
> class Something extends mixInto(Mixin)(Base) {}
Behaviour of new class.
> const something = new Something()
> /* new class has methods of both source classes */
> something.baseMethod()
1
> something.someMethod()
2
> /* Only the base constructor is run */
> something.ranBaseConstructor
true
> something.ranMixinConstructor
undefined
> something instanceof Base
true
> something instanceof Mixin
false
© 2018-19 Lloyd Brookes <75pound@gmail.com>.
Copyright 2013 - present © cnpmjs.org | Home |