Primitive Wrapper Types – Primitive Values के साथ प्रक्रिया करने के ECMAScript में Boolean, Number व String नाम के तीन Special Reference Types Define किए गए हैं। ये Reference Types भी अन्य Reference Types की तरह ही काम करते हैं और इनके साथ Primitive Types से संबंधित Special Behaviors को Handle करने के लिए इनमें Special Methods भी Defined हैं।
जितनी बार भी एक Primitive Value Read होता है, उस Value से संबंधित Primitive Wrapper Type Create होता है, जो उस Primitive Data को विभिन्न प्रकार से Access करने के लिए विभिन्न प्रकार के Methods Provide करता है। जैसे-
[code] var str1 = “Some Message”; var str2 = str1.substring(2); [/code]
इस Code Segment में str1 नाम का एक String Variable Create किया गया है जो कि एक Primitive Value है। अगली Line में इस str1 Object के साथ substring() Method को Call किया गया है और इस Method द्वारा Return होने वाले Result को str2 Variable में Store किया गया है।
चूंकि Primitive Values, Objects नहीं होते, इसलिए Logically उनका कोई Method नहीं हो सकता। फिर भी उपरोक्त Code में हम देख सकते हैं कि str1 String के साथ substring() Method को Call किया गया है।
वास्तव में सच्चाई ये है कि हम ऐसा इसलिए कर पा रहे हैं क्योंकि JavaScript बहुत सारे ऐसे काम Invisible तरीके से Automatically स्वयं करता रहता है, जिनके बारे में हमें सामान्य रूप से पता भी नहीं चलता।
जब उपरोक्त Code की दूसरी Line में str1 Read होता है, ताकि उसकी Substring को str2 Variable में Store किया जा सके, तब वास्तव में Background में निम्नानुसार तीन काम हो रहे होते हैं:
- String Type का एक Instance Create होता है।
- इस Instance पर Specify किया गया Method Call होता है।
- Instance Destroy हो जाता है।
हम इन तीन प्रक्रियाओं को निम्नानुसार तीन ECMAScript Code Lines के रूप में समझ सकते हैं:
[code] var str1 = new String (“Some Message”); var str2 = str1.substring(2); str1 = null; [/code]
JavaScript का ये Behavior किसी Primitive String को एक Object की तरह व्यवहार करने की सुविधा देता है। ये ही तीन Steps किसी Boolean व Numeric Value के साथ Boolean व Number Types का प्रयोग करते हुए भी Perform होते हैं।
Reference Types व Primitive Wrapper Types के बीच मूल अन्तर Object की Lifetime का ही होता है। जब new Operator का प्रयोग करके कोई Reference Type Create किया जाता है, तब वह Instance तब तक Memory में रहता है, जब तक कि वह Out of Scope नहीं हो जाता, जबकि Automatically Create होने वाले Wrapper Objects केवल उस Code Line तक ही उपलब्ध रहते हैं, जहां उन्हें Use किया गया है और उस Line के Interpret होते ही ये Objects Out of Scope या Destroy हो जाते हैं। जिसका मतलब ये हुआ कि हम इन Wrapper Objects के साथ Runtime में निम्नानुसार Code द्वारा Properties व Methods को Add नहीं कर सकते-
[code] var str1 = “Some Message”; str1.color = “blue” alert(str1.color); //Output: undefined [/code]
उपरोक्त उदाहरण की दूसरी Code Line में हमने str1 String के साथ एक color नाम की Property को Add करने की कोशिश की है। हालांकि str1 Third Line में Access हो रहा है, लेकिन दूसरी Line में उसके साथ Associate की गई color Property Destroy हो चुकी है और ऐसा इसलिए हो रहा है क्योंकि Second Line में Create होने वाला String Object, Third Line में Destroy हो चुका होता है और Third Line अपना स्वयं का नया String Object Create करता है, जिसके साथ color Property Added नहीं रहता।
हम Primitive Wrapper Objects को Boolean, Number व String Constructors का प्रयोग करके Manually भी Create कर सकते हैं। लेकिन ऐसा तभी करना चाहिए जब वास्तव में इसकी जरूरत हो, क्योंकि ऐसा करने पर एक Developer ऐसे Codes को देखकर Confuse हो सकता है कि वह किसी Primitive String के साथ काम कर रहा है या String Object के साथ।
जब हम Primitive Wrapper Types के साथ typeof Method को Call करते हैं, तो Method हमें Output के रूप में “object” Return करता है और Primitive Wrapper Object को Boolean Value true में Convert कर देता है।
हालांकि Primitive Wrapper Objects को Manually Create नहीं करना चाहिए, लेकिन इनकी ये Functionality काफी महत्वपूर्ण है जो Primitive Values को Object की तरह Access करने की सुविधा प्रदान करती है। हर Primitive Wrapper Type के साथ कुछ Methods Associated होते हैं, जिनके द्वारा उस Primitive Wrapper Type के Data को आसानी से Access व Manipulate किया जा सकता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance JavaScript in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance JavaScript in Hindi | Page: 669 | Format: PDF