यह प्रश्न another से बाहर आया है, जो स्ट्रिंग अक्षर के साथ console.dir
के व्यवहार से संबंधित है। विशेष रूप से, my answer पर टिप्पणियां देखें।स्ट्रिंग अक्षर के लिए उपलब्ध स्ट्रिंग.प्रोटोटाइप के तरीके क्यों हैं?
जैसा कि हम सभी जानते हैं, String
जावास्क्रिप्ट में ऑब्जेक्ट्स में कई विधियां हैं। उन विधियों को String.prototype
ऑब्जेक्ट पर परिभाषित किया गया है। उदाहरण के लिए String.prototype.toUpperCase
। इसलिए हम इस तरह कर सकते हैं:
var s = new String("hello"),
s2 = s.toUpperCase(); //toUpperCase is a method on String.prototype
हालांकि, हम भी ऐसा कर सकते हैं:
var s = "hello", //s is a string literal, not an instance of String
s2 = s.toUpperCase();
जाहिर है, जावास्क्रिप्ट दुभाषिया रूपांतरण/कलाकारों के कुछ फार्म कर रही है जब आप String.prototype
की एक विधि फोन एक स्ट्रिंग शाब्दिक पर। हालांकि, मुझे spec में इसका कोई संदर्भ नहीं मिल रहा है।
यह समझ में आता है, अन्यथा आपको किसी भी विधि का उपयोग करने से पहले प्रत्येक स्ट्रिंग को String
ऑब्जेक्ट में वर्णित करना होगा, और यह काफी परेशान होगा।
तो मेरा सवाल यह है कि, यह कार्यक्षमता कहां वर्णित है, और क्या मुझे लगता है कि शाब्दिक मूल्य अस्थायी रूप से String
के उदाहरण में डाला गया है? क्या मैं इसे सोच रहा हूं और कुछ याद कर रहा हूं?
बीटीडब्ल्यू 'नया स्ट्रिंग (मूल्य) 'नोटेशन 100% बेकार है ... इसका उपयोग न करें। –
मुझे पता है कि यह है। सवाल यह है कि क्यों। यह spec में वर्णित कहां है? –
एक स्ट्रिंग अक्षर एक स्ट्रिंग ऑब्जेक्ट है: 'टाइपोफ "हैलो" === "स्ट्रिंग" 'सत्य लौटाता है। क्या यह इस मुद्दे पर मिलता है? – bbg