2011-12-19 18 views
6

मैं इस धारणा के तहत था कि तारों में गुण हैं, जैसे कि matchconsole.dir('') का दावा है कि '' में कोई गुण नहीं है (कम से कम Google क्रोम में)?console.dir ('') प्रिंट "गुण नहीं" क्यों करता है?

+2

'console.dir (नई स्ट्रिंग())' – Petah

+1

एक ही परिणाम है, हालांकि? (फ़ायरफ़ॉक्स में) – Halcyon

उत्तर

6

क्योंकि '' एक स्ट्रिंग शाब्दिक, String "वर्ग" का एक उदाहरण नहीं है यह। match जैसे गुण String.prototype पर घोषित किए गए हैं, तो आप स्ट्रिंग अक्षर का उपयोग करते समय उन्हें नहीं देख पाएंगे। आप new ऑपरेटर का उपयोग करते हैं आप क्या उम्मीद देखेंगे:

var s = new String("hello"); 
console.dir(s); 

यहाँ, Chrome के डेवलपर उपकरण से एक स्क्रीनशॉट (prototype का विस्तार करने की जरूरत है नोटिस है विधि आप को देखने के लिए प्रोटोटाइप पर घोषित किया जाता है के रूप में की उम्मीद कर रहे , नहीं String वस्तु ही):

enter image description here

+0

दिलचस्प बात यह है कि फायरबग का परिणाम अलग है। – lonesomeday

+0

हम्म। फायरबग दो बार तरीकों की सूची में प्रतीत होता है। एक बार ऑब्जेक्ट के लिए 'प्रोटोटाइप' के लिए एक बार। यह 'लंबाई' संपत्ति को अनदेखा करता है। –

+0

मैं अभी भी कुछ हद तक असुविधाजनक हूं। ''' .match',' '' .constructor' आदि क्यों 'अपरिभाषित' प्रिंट नहीं करता है, और फिर भी 'dir (' ')' उन्हें मुद्रित नहीं करता है? – Randomblue

2

इसी कारण संभावना console.dir (सही) और console.dir (1234) का कहना है कि कि एक बार आप आंकड़ों के घुंडी की ओर इशारा करते नीचे बारी। ऐसा लगता है कि कोड केवल ऑब्जेक्ट्स के जरिए गुणों के माध्यम से पुनरावृत्त करता है। क्यों कि टर्नडाउन घुंडी अभी भी अस्पष्ट है।

+1

'स्ट्रिंग्स' ऑब्जेक्ट्स हैं, 'Arrays' ऑब्जेक्ट्स हैं,' फंक्शंस 'के लिए यह' प्रोटोटाइप 'सूचीबद्ध करेगा, जो बहुत ही अनोखा है। शायद बस कुछ 'console.dir' जादू? 'console.log' भी बहुत जादू है (DOMElements पर)। फ़ायरफ़ॉक्स का नमूना बहुत ही अनुपयोगी है। – Halcyon

+0

"" उदाहरण स्ट्रिंग – peller

+0

हम्म .. "" उदाहरण स्ट्रिंग' का उदाहरण 'झूठा' है .. क्यों !? 'टाइपऑफ" "' रिटर्न '"स्ट्रिंग" हालांकि। मुझे लगता है कि यह केवल तभी समझाया जा सकता है जब '' "एक कन्स्ट्रक्टर है जो 'स्ट्रिंग' नहीं है, भले ही आप इसकी अपेक्षा करेंगे। – Halcyon

0

जावास्क्रिप्ट में वैश्विक स्ट्रिंग ऑब्जेक्ट में भाषा में पूर्वनिर्धारित विधियां हैं। वास्तविक स्ट्रिंग अक्षर वैश्विक स्ट्रिंग ऑब्जेक्ट के तरीकों का उत्तराधिकारी है, लेकिन अन्यथा "लंबाई" को छोड़कर कोई गुण नहीं है।

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String

+0

हम। तो क्यों नहीं '' 'लम्बाई' मुद्रित? – Randomblue

+0

मैंने कभी console.dir का उपयोग नहीं किया है। मैंने हमेशा console.log का उपयोग किया है। '''। लम्बाई === 0' – austincheney

+0

बिल्कुल नहीं। स्ट्रिंग अक्षर और ऑब्जेक्ट्स – peller

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