Andrea Giammarchi (2015-02-12T20:36:34.000Z)
d at domenic.me (2015-02-17T20:26:05.177Z)
So we agree traits are not classes and notions, as well as functionality, is different. Then why would you us `class` to define a trait? How are you going to recognize them? I have a library that works already out of the box with traits but these are not classes, just objects that will enrich classes. Overriding methods means having a warning in console, instead of throwing, and nothing else. You compose whatever you want, order of defined mixins/traits matters, as well as eventual initialization of each trait. The latter one, is available already once each instance is defined, inside the constructor. This works to me, and I'd rather avoid the burden to walk all inheritance chain if I have to accept classes too instead of objects, but I wouldn't mind implementing it as long as I understand why that's a good thing to have in JS.