के बाद वर्तमान 'कक्षा का नाम' प्राप्त करें मैं कक्षा/फ़ंक्शन/प्रोटोटाइप विरासत के साथ थोड़ा सा खेल रहा था और एक सभ्य सेटअप काम कर रहा था। कुछ सरल जो मैं समझता हूं।कक्षा/प्रोटोटाइप विरासत
http://jsfiddle.net/rudiedirkx/rwPeD/6/
डीबगिंग उद्देश्यों के लिए, मैं प्रत्येक निर्माता वस्तु किस तरह का है कि निर्माता बुला रहा था में मुद्रित करने के लिए करना चाहता था। उदाहरण के लिए रोनीन कन्स्ट्रक्टर निंजा कन्स्ट्रक्टर को कॉल करता है और वह व्यक्ति कन्स्ट्रक्टर को कॉल करता है। उसके लिए मैं एक get_class
समारोह बनाया:
function get_class(obj) {
var C = String(obj.__proto__.constructor);
return C.match(/function (\w+)\(/, C)[1];
}
और वह काम नहीं करता। यह हमेशा "व्यक्ति" देता है। क्यूं कर? प्रत्येक 'वर्ग' का अपना कन्स्ट्रक्टर होता है, है ना? यदि मैं प्रत्येक कन्स्ट्रक्टर में console.log(this)
करता हूं, तो Chrome Devtools जानता है कि ऑब्जेक्ट किस प्रकार है। मैं वहां कैसे जाऊं (वेनिला जेएस के साथ)?
पीएस। मेरी क्रोम में पूर्ण उत्पादन:
के संभावित डुप्लिकेट [तुम क्यों भाग दौरान जावास्क्रिप्ट निर्माता पुनर्स्थापित करने के लिए की जरूरत है?] (Http://stackoverflow.com/questions/13222696/why-do पाया जा सकता है - आपको-रीसेट-टू-रीसेट-जावास्क्रिप्ट-कन्स्ट्रक्टर-ऑर्डर-विरासत) – Bergi