traits.js - Traits for Javascript. Interesting experiment for JavaScript - Traits offer better composition than classic classes and more structure than JavaScript's prototype-based OO - and here the features of Traits are well mapped to the existing JavaScript features (e.g., objects are mapped via closures). The disadvantage, as with all such language extensions, is that you can usually work with them yourself, but other libraries do not use them and thus the advantage in projects that heavily rely on third-party libraries is rather minimal.