2012-05-15 10 views
6

एक स्ट्रिंग को सबसे सरल ऑब्जेक्ट के रूप में देखा जा सकता है जो पाठ को पकड़ और कुशलतापूर्वक उपयोग कर सकता है, और स्ट्रिंग्स पर कार्य करने वाले ऐसे कार्यों को जरूरी नहीं है कि वे विधियों के रूप में हों। दूसरी ओर, जावास्क्रिप्ट मुख्य रूप से एक वेब प्रोग्रामिंग भाषा है, और यूआरआई के साथ काम करना भाषा में तारों के लिए काफी आम उपयोग है; इस मामले में lastName.encodeURIComponent() की तरह कुछ वास्तव में काफी उपयोगी होगा।स्ट्रिंग ऑब्जेक्ट पर विधियों, एस्केप, इत्यादि जैसी विधियां क्यों नहीं हैं?

क्यों एनकोडुरिकॉम्पोनेंट और अनसस्केप जैसी चीजें हैं स्ट्रिंग ऑब्जेक्ट पर विधियां नहीं? क्या यहां काम पर कुछ सीएस सिद्धांत है, या यह भाषा के डिजाइनरों में से एक द्वारा व्यक्तिपरक पसंद था?

स्पष्ट रूप से स्ट्रिंग पर चलने वाले प्रत्येक फ़ंक्शन को स्ट्रिंग ऑब्जेक्ट में होना आवश्यक नहीं है, लेकिन लोग कहां और कैसे तय करते हैं कि रेखा को आकर्षित करना है?

+0

यह पूछने की तरह है कि क्यों 'eval' वैश्विक था और स्ट्रिंग के लिए एक विधि नहीं थी। – Joseph

+0

हां, यह कुछ हद तक पूछने जैसा है। मैं सवाल थोड़ा सा संशोधित करूंगा। – Fuser97381

उत्तर

3

मुझे नहीं लगता कि वे विधियां जावास्क्रिप्ट का हिस्सा हैं लेकिन window से विरासत में मिली हैं, जो ब्राउज़रों से जुड़ी वैश्विक वस्तु है। इस प्रकार, जब आपके द्वारा सूचीबद्ध कार्यों को स्ट्रिंग के साथ सौदा किया जाता है, तो वे वास्तव में ब्राउज़र फ़ंक्शन से निकटता से बंधे होते हैं और इस प्रकार String प्रोटोटाइप से जुड़े नहीं होते हैं। एमडीएन जैसे स्रोत इस पर गड़बड़ कर रहे हैं लेकिन मुझे पूरा यकीन है कि मूल जेएस स्पेक इन तरीकों का कोई उल्लेख नहीं करता है।

शायद यह अधिक समझ में नहीं आया है, लेकिन आजकल यह वास्तव में कल्पना की जा सकती है कि कोई भी जेएस को एम्बेडेड सिस्टम की भाषा या किसी अन्य इंटरनेट संगठन के रूप में उपयोग करना चाहेगा। यहां, encodeURIComponent() शामिल एक वाक्यविन्यास document.getElementById() के रूप में स्थान के बाहर होगा।

7

क्योंकि वे ब्राउज़र वातावरण के लिए विशिष्ट हैं। जावास्क्रिप्ट भाषा के लिए जेनेरिक स्ट्रिंग ऑब्जेक्ट में उनके पास कोई स्थान नहीं है।

1

आप कहां रुकेंगे। स्ट्रिंग्स अनन्य हैं, परिभाषा के अनुसार आप किसी भी विधि का उपयोग कर रहे हैं जिसने एक स्ट्रिंग को एक तर्क के रूप में लिया है या स्ट्रिंग क्लास में होना चाहिए।

समान रूप से यह एन्कोडिंग विधियों को लेना चाहिए जो स्ट्रीमिंग और स्ट्रीम विधियों को एन्कोडिंग करते थे।

आप सभी जगह जल्दी से होंगे, या आप एक एन्कोडिंग कक्षा में प्रतिनिधि द्वारा स्ट्रिंग का विस्तार करेंगे।

1

भागने() फ़ंक्शन एन्कोड एक स्ट्रिंग।

इस समारोह मीटर * akes एक स्ट्रिंग पोर्टेबल *, तो यह हो सकता है कि ASCII वर्णों का समर्थन किसी भी कंप्यूटर के लिए किसी भी नेटवर्क पर आसानी से ट्रांसमिट।

इस समारोह में विशेष वर्ण

encodes अब इस कार्यक्षमता जो कुछ स्ट्रिंग्स जो ब्राउज़र आधारित वातावरण में यूआरएल हैं के लिए विशिष्ट है, एक भाषा के रूप में जे एस इसके बारे में स्वतंत्र होता है।

तो बचाना, स्ट्रिंग में अनचेक भी गैर-नेटवर्क/यूआरएल संबंधी परिदृश्यों में बेकार हो जाएगा।

यही कारण है कि वे विंडो ऑब्जेक्ट का हिस्सा हैं।

आप इसे स्ट्रिंग में चाहते हैं, तो आप इसे स्ट्रिंग के प्रोटोटाइप में जोड़ सकते हैं।