Prototip miras basittir. Karışımlara göre tek bir avantajı vardır.
Bu canlı bir bağlantı. prototipi değiştirirseniz, miras alan her şey değiştirilir.
PD kullanan örnek
var Circle = {
constructor: function _constructor() {
this.radius = 0;
return this;
},
area: function _area() {
return this.radius * this.radius * Circle.PI
},
PI: 3.14
};
var mixedIn = pd.extend({}, Circle).constructor();
var inherited = pd.make(Circle, {}).constructor();
Circle.perimeter = perimeter;
inherited.perimeter(); // wins
mixedIn.perimeter(); // fails
function perimeter() {
return 2 * this.radius;
}
Temel olarak, "arabirim" Çemberinde yapılan değişikliklerin çalışma zamanında "işlevini" kullanan tüm nesnelere yansıtmasını istiyorsanız, ondan devralın.
Değişikliklerin yansıtılmasını istemiyorsanız, karıştırın.
Karışımların da bundan daha fazla amacı olduğunu unutmayın. Mixins çoklu "kalıtım" için mekanizmanızdır.
Bir nesnenin birden fazla "arabirimi" uygulamasını istiyorsanız , o zaman bazılarını karıştırmanız gerekir. Prototipik miras için kullandığınız, değişikliklerin çalışma zamanında yansıtılmasını istediğiniz, diğerleri karıştırılacaktır.