Implementation object inheritance, static methods and properties, mixins in JavaScript