Quando dovresti preferire i modelli ereditari rispetto ai mixin in linguaggi dinamici?
Per mixin, intendo il vero e proprio mixaggio, come nell'inserimento di funzioni e membri di dati in un oggetto in fase di esecuzione.
Quando useresti, ad esempio, l'eredità prototipale anziché i mixin? Per illustrare più chiaramente cosa intendo per mixin, alcuni pseudocodici:
asCircle(obj) {
obj.radius = 0
obj.area = function() {
return this.radius * this.radius * 3.14
}
myObject = {}
asCircle(myObject)
myObject.area() // -> 0