Traits/Mixins for class syntax

Dmitry Soshnikov dmitry.soshnikov at
Thu May 16 14:19:16 PDT 2013

In the simplest way can just desugar to Object.mixin(Foo.prototype,
Mixin1[, Mixin2, .., MixinN); before the class creation (methods of own
class's prototype should override mixins, but not the parent methods).
Although, form I see in the latest draft even Object.mixin(...) is still
under discussion.


On Thu, May 16, 2013 at 2:11 PM, Dmitry Soshnikov <
dmitry.soshnikov at> wrote:

> Hey guys,
> Sorry for the random question (probably it was already discussed).
> What is a current state having mixins/traits syntax along with a class
> definition?
> Like:
> class Foo extends Bar {
>   use EventEmitter, CommonMethodsMixin;
>   ...
> }
> where mixins provided in "use" declarations are simple objects which are
> copied to the Foo.prototype. (with potential optimization of delegating to
> mixins).
> We currently use an extension in our pre-processing infrastructure, which
> does exactly what described above (so it's not that hard to have it as a
> sugar in local projects):
> class Foo extend Bar mixin(EventEmitter) { ... }, although "use" seems
> fits better and to have it on standard level is seems reasonable.
> Thanks,
> Dmitry
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list