2012-10-17 14 views
10

मैं क्रोम v22.0.1229.94 मीटर का उपयोग कर रहा है, न कि इससे कोई फर्क करना चाहिए, लेकिन सिर्फ मामले :-)DevTools किसी ऑब्जेक्ट के कन्स्ट्रक्टर का नाम कैसे निर्धारित करता है?

पोर्टेबिलिटी में मेरे लिए कोई चिंता का विषय है। जब तक यह क्रोम (और सफारी) के साथ काम करता है, मैं खुश हूं।

मैं दो काम करता है, foo और बार है

var foo = function() { 
    ... 
} 
function bar() { 
    ... 
} 

तो उन्हें प्रयोग अगर मैं वस्तुओं को बनाने:

f1 = new foo(); 
b1 = new bar(); 

मैं बार के लिए निर्माता का नाम प्राप्त कर सकते हैं, लेकिन न ही foo के लिए:

> f1.constructor.name ==> "" 
> b1.constructor.name ==> "bar" 

अभी तक दोनों मामलों में DevTools कंसोल नाम "foo" और "b दिखाएगा ar "जब मैं चर f1 और b1 चर का निरीक्षण करता हूं।

मैं कैसे f1 के लिए नामfoo निकालने करते DevTools करने में सक्षम है के रूप में?

enter image description here

+0

यह दिलचस्प है। यह devtools की तरह अज्ञात समारोह मनमानी नाम है। इसे भी देखें: 'var foo = function myfoo() {}; नया foo(); ==> myfoo' – Mohsen

+0

@Mohsen स्क्रीन ग्रैब और आपकी सहायक टिप्पणी के लिए धन्यवाद। – CyberFonic

+0

यह एक शानदार सवाल है, और मुझे विश्वास नहीं है कि यह नाम स्वयं कार्य से प्राप्त करना संभव नहीं है ... मुझे इसकी आवश्यकता है: डी कोई भाग्य समाधान ढूंढ रहा है ?? – Wilt

उत्तर

1

foo के लिए मामले में, आप एक समारोह अभिव्यक्ति बना रहे हैं। इसका मतलब है, आप एक चर के लिए अज्ञात फ़ंक्शन असाइन कर रहे हैं।

आप, प्रोग्राम के ऐसे ही समारोह name को हल नहीं कर सकते जब तक कि आप समारोह को कोई नाम दें और एक "नामित समारोह अभिव्यक्ति" पैदा करते हैं।

var foo = function foo() { 
    ... 
} 
+1

उनका सवाल यह है कि कैसे डेवलपर टूल 'foo' नामक ऑब्जेक्ट को 'foo') के बदले में दिखाते हैं? – Mohsen

6

वी 8 पार्सिंग चरण में फ़ंक्शन नाम अनुमान प्रस्तुत कर सकता है, इस जानकारी को अपने एपीआई के माध्यम से उजागर कर सकता है। आप सामान्य ऑब्जेक्ट गुणों का उपयोग करके इस जानकारी को निकालने में सक्षम नहीं होंगे।

+1

मैं वी 8 एपीआई (पोर्टेबिलिटी की आवश्यकता नहीं है) का उपयोग करने के प्रतिकूल नहीं हूं। क्या आप मुझे उस एपीआई के दस्तावेज की दिशा में इंगित करने में सक्षम हैं। – CyberFonic

+1

क्या यह नाम प्राप्त करना वाकई संभव नहीं है? अविश्वसनीय... – Wilt

संबंधित मुद्दे

 संबंधित मुद्दे