Quand devriez-vous préférer les modèles d'héritage aux mixins dans les langages dynamiques?
Par mixins, j'entends un véritable mixage, comme lors de l'insertion de fonctions et de membres de données dans un objet lors de l'exécution.
Quand utiliseriez-vous, par exemple, l'héritage prototypique au lieu des mixins? Pour illustrer plus clairement ce que je veux dire par mixin, un pseudocode:
asCircle(obj) {
obj.radius = 0
obj.area = function() {
return this.radius * this.radius * 3.14
}
myObject = {}
asCircle(myObject)
myObject.area() // -> 0