JavaScript mixin patterns
Four different ways JavaScript variables and closures can be used to implement different mix-in patterns.
Each implementation creates a mixin that creates property getter functions for model objects.
By model object I mean a function that takes properties (keys and values)( and returns an object that: