यह क्रॉकफ़ोर्ड की Object.create
विधि जैसा दिखता है, लेकिन इस फ़ंक्शन का उपयोग "सेटअप" करने के लिए किया जाता है।
यह दो रचनाकारों को तर्क के रूप में स्वीकार करता है, और यह पहले के prototype
को सेट करता है।
मुझे गुप्त चर नाम का नाम बदलने करते हैं:
function G(sub, super) {
var F = function() { };
F.prototype = super.prototype;
sub.superLink = super.prototype;
sub.prototype = new F();
}
function Super() {
//...
}
Super.prototype.member1 = 'superMember1';
function Sub() {
this.member2 = 'subMember2';
}
G(Sub, Super);
new Sub(); // Object { member2="subMember2", member1="superMember1"}
संपादित करें:T
संपत्ति बस को पता है कि उप एक के "सुपर" निर्माता है प्रयोग किया जाता है, मैं पर इस पैटर्न देखा है अन्य स्थानों पर, किताब में प्रो जावास्क्रिप्ट डिजाइन पैटर्न की तरह (page 43), कुछ अतिरिक्त सुविधा के साथ constructor
संपत्ति गलत वस्तु को इंगित करने को रोकने के लिए:
function extend(subClass, superClass) {
var F = function() {};
F.prototype = superClass.prototype;
subClass.prototype = new F();
subClass.prototype.constructor = subClass;
subClass.superclass = superClass.prototype;
if(superClass.prototype.constructor == Object.prototype.constructor) {
superClass.prototype.constructor = superClass;
}
}
यह भी देखें:
मुझे लगता है कि आप क्या पूछ रहे हैं "कोई ऐसा क्यों करेगा?", क्योंकि "लोगों को भ्रमित करने" के जवाब देने के अलावा, मेरे पास आपके लिए कुछ भी नहीं है। – wlangstroth
आपको यह कहां मिला? सेट किया जा रहा 'टी' प्रॉपर्टी प्रोटोटाइपिकल विरासत के संबंध में मैंने देखा है कि किसी भी पैटर्न के विशिष्ट नहीं है। लेकिन मुझे विश्वास है कि यह कन्स्ट्रक्टर विरासत के साथ-साथ प्रोटोटाइप श्रृंखला भी हो सकता है। –