मैं जावास्क्रिप्ट में वर्ग नाम उत्पन्न करने के नियमों को निर्धारित करने की कोशिश कर रहा हूं। मैं क्रोम देव उपकरणों कंसोल में इस स्क्रिप्ट चिपकाया:क्रोम देव उपकरण में कस्टम कक्षाओं के लिए जावास्क्रिप्ट क्लास नामों की गणना कैसे की जाती है?
var obj = {
Constr : function() { }
};
var obj2 = obj;
console.log(new obj.Constr());
console.log(new obj2.Constr());
obj2.Constr2 = function() { };
console.log(new obj.Constr2());
console.log(new obj2.Constr2());
और यहाँ कंसोल में परिणाम हैं:
obj.Constr
obj.Constr
obj2.Constr2
obj2.Constr2
ऐसा लगता है कि क्लास का नाम चर द्वारा निर्धारित किया जाता है कि निर्माता समारोह मूल रूप से असाइन किया गया था। मैं सटीक नियमों की तलाश में हूं जो सीडीटी इस नाम को उत्पन्न करने के लिए उपयोग करता है। साथ ही, क्या यह वही नाम है जो Google क्लोजर कंपाइलर पहचानता है?
मैंने यह देखने की कोशिश की है कि क्या मैं फ़ायरबग में समान व्यवहार पुन: उत्पन्न कर सकता हूं, लेकिन मुझे कंसोल में प्रिंट करने के लिए कक्षा के नाम नहीं मिलते हैं। एक माध्यमिक प्रश्न के रूप में, क्या किसी को यह पता है कि फायरबग में इसे कैसे देखना है?
तो, जैसा कि मुझे डर था, सीडीटी द्वारा मुद्रित नाम ecmascript चश्मा से नहीं आता है। यह डेवलपर के लिए केवल एक डीबगिंग सुविधा है। मैं जावास्क्रिप्ट के लिए बिल्कुल नया हूं और मुझे आम तौर पर प्रोटोटाइप शैली पसंद है, लेकिन मुझे यह निराशाजनक लगता है कि डोजो और एक्स्टज जैसे पुस्तकालय प्रोग्रामिंग के ओओ शैली में शूहोर्न करने की कोशिश करते हैं। मुझे लगता है कि यह जावास्क्रिप्ट की बेहतर सुविधाओं में से एक है। –
जावास्क्रिप्ट एक _very_ ओओ भाषा है, और वास्तव में इसमें काफी लचीला है। जावास्क्रिप्ट के एक विशिष्ट वर्ग-आधारित ओओ _on top_ के निर्माण के बहुत सारे पुस्तकालय हैं, और आमतौर पर यह काफी अच्छी तरह से काम करता है। यह उन पुस्तकालयों या जावास्क्रिप्ट के लिए जरूरी नहीं है। – lanzz