Traits/Mixins for class syntax

Andrea Giammarchi andrea.giammarchi at gmail.com
Fri May 17 10:01:34 PDT 2013


for what it matters, redefine.js already does exactly that.
( https://github.com/WebReflection/redefine#classes )

var Foo = redefine.Class({
  extend: Bar,
  mixin: [F, object, F2.prototype, Class3]
});

and yes, it makes perfect sense, specially for mixins such EventEmitter and
similar

my 2 cents



On Thu, May 16, 2013 at 2:11 PM, Dmitry Soshnikov <
dmitry.soshnikov at gmail.com> 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
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130517/705c1950/attachment.html>


More information about the es-discuss mailing list