प्रोटोटाइपिक विरासत सरल है। यह मिश्रण पर एक एकल लाभ है।
वह यह है कि यह एक जीवंत लिंक है। यदि आप प्रोटोटाइप को बदलते हैं जो सब कुछ विरासत में मिला है तो वह बदल गया है।
Pd का उपयोग करके उदाहरण
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;
}
इसलिए मूल रूप से, यदि आप "इंटरफ़ेस" सर्किल में परिवर्तन चाहते हैं, तो रन-टाइम को प्रतिबिंबित करने के लिए सभी ऑब्जेक्ट्स जो इसे "कार्यक्षमता" का उपयोग करते हैं, तो इसे इनहेरिट करें।
यदि आप परिवर्तनों को प्रतिबिंबित नहीं करना चाहते हैं, तो इसे मिलाएं।
ध्यान दें कि मिक्सिन्स का उद्देश्य इससे भी अधिक है। मिश्रण कई "वंशानुक्रम" के लिए आपका तंत्र हैं।
यदि आप एक से अधिक "इंटरफेस" को लागू करने के लिए ऑब्जेक्ट चाहते हैं तो आपको कुछ को मिक्स करना होगा । आपके द्वारा प्रोटॉटिकल इनहेरिटेंस के लिए उपयोग किया जाने वाला एक वह है जिसे आप रन-टाइम के लिए प्रतिबिंबित करना चाहते हैं, अन्य को इसमें मिलाया जाएगा।