जावास्क्रिप्ट में रैपर ऑब्जेक्ट्स
यह लेख जावास्क्रिप्ट में रैपर ऑब्जेक्ट्स के बारे में बताता है।
YouTube Video
व्रैपर वस्तुएँ (Wrapper Objects)
जावास्क्रिप्ट में प्रिमिटिव प्रकार और उन्हें प्रबंधित करने के लिए ऑब्जेक्ट्स होते हैं (रैपर ऑब्जेक्ट्स)।
प्राथमिक प्रकार (Primitive Types)
प्रिमिटिव प्रकार एक सिंगल वैल्यू का प्रतिनिधित्व करते हैं और साधारण तथा हल्के होते हैं। ये अपरिवर्तनीय (बदलाव के योग्य नहीं) हैं और इनमें सीधे तौर पर ऑब्जेक्ट मेथड्स या प्रॉपर्टीज़ नहीं होतीं, लेकिन इन्हें संचालन के लिए अस्थायी रूप से रैपर ऑब्जेक्ट्स में बदला जा सकता है।
string और number प्रिमिटिव प्रकार के उदाहरण हैं। दूसरी ओर, रैपर ऑब्जेक्ट्स बड़े अक्षर से शुरू होते हैं, जैसे String और Number।
रैपर ऑब्जेक्ट्स
मूल प्रकारों को नियंत्रित करने के लिए, जावास्क्रिप्ट अस्थायी रूप से आवरण ऑब्जेक्ट (Objectwrappers) उत्पन्न करता है। आवरण ऑब्जेक्ट में प्राइमिटिव प्रकारों के लिए विधियाँ और गुण होते हैं।
Number
1let numObject = new Number(42); // Wrapper object
2
3console.log(typeof numObject); // object
4console.log(numObject.valueOf()); // 42
5
6let numValue = Number(42); // Return primitive value
7
8console.log(typeof numValue); // number
9console.log(numValue); // 42
Numberएक ऑब्जेक्ट प्रकार है जो प्राइमिटिवnumberको रैप करता है।। एकNumberऑब्जेक्ट को स्पष्ट रूप से बनाकर, आप अंकों को एकnumberकी तरह नियंत्रित कर सकते हैं, लेकिन आम तौर पर प्राइमिटिवnumberप्रकार का उपयोग करने की सिफारिश की जाती है।
typeof numObject"object"है, लेकिनtypeof 42"number"है।
- ध्यान दें कि
नईऑपरेटर का उपयोग करके एक नया आवरण ऑब्जेक्ट बनाने का परिणाम, एक फ़ंक्शन के रूप मेंNumberको कॉल करने से अलग होता है। जब इसे एक फ़ंक्शन के रूप में कॉल किया जाता है, तो एक प्रिमिटिवnumberवापस मिलता है।
String
1let strObject = new String("Hello"); // Wrapper object
2
3console.log(typeof strObject); // object
4console.log(strObject.valueOf()); // Hello
- यह एक ऑब्जेक्ट प्रकार है जो एक प्राइमिटिव
stringको रैप करता है।।Stringऑब्जेक्ट का उपयोग करके, आप स्ट्रिंग के गुण और विधियों तक पहुंच सकते हैं, लेकिन आम तौर पर एक प्राइमिटिवstringका उपयोग किया जाता है।
typeof strObject"object"है, लेकिनtypeof "Hello""string"है।
Numberकी तरह, एक फ़ंक्शन के रूप मेंStringको कॉल करने पर एक प्राइमिटिवstringलौटता है।
Boolean
1let boolObject = new Boolean(true); // Wrapper object
2
3console.log(typeof boolObject); // object
4console.log(boolObject.valueOf()); // true
- यह एक ऑब्जेक्ट प्रकार है जो एक प्राइमिटिव
booleanको रैप करता है।। आप स्पष्ट रूप से एकBooleanऑब्जेक्ट भी बना सकते हैं, लेकिन आम तौर पर एक प्राइमिटिवbooleanप्रकार का उपयोग किया जाता है।
typeof boolObject"object"है, लेकिनtypeof true"boolean"है।
Numberके समान, एक फ़ंक्शन के रूप मेंBooleanको कॉल करने पर एक प्राइमिटिवbooleanलौटता है।
BigInt
1let bigIntObject = Object(9007199254740991n); // Wrapper object
2
3console.log(typeof bigIntObject); // object
4console.log(bigIntObject.valueOf()); // 9007199254740991n
5
6let bigIntValue = BigInt(9007199254740991); // Return primitive BigInt
7
8console.log(typeof bigIntValue); // bigint
9console.log(bigIntValue); // 9007199254740991n
10
11// Error
12let bigIntObject2 = new BigInt(9007199254740991n);Objectを使ってBigIntのラッパーオブジェクトを生成できますが、通常はプリミティブ型のbigintを直接使うのが一般的です。
typeof bigIntObjectは"object"であるのに対し、typeof 9007199254740991nは"bigint"です。
BigIntを関数として呼び出すとプリミティブなbigintを返しますが、new演算子をつけてBigIntのラッパーオブジェクトを生成することはできません。
Symbol
1let symObject = Object(Symbol("id")); // Wrapper object for Symbol
2
3console.log(typeof symObject); // object
4console.log(symObject.valueOf()); //
- आप
Symbolके लिए एक रैपर ऑब्जेक्ट बनाने के लिएObjectका उपयोग कर सकते हैं, लेकिन आम तौर पर आप सीधेSymbolप्राइमिटिव प्रकार का उपयोग करते हैं।
मूल प्रकार और आवरण ऑब्जेक्ट के बीच अंतर
- मूल प्रकार हल्के और स्मृति-कुशल होते हैं, लेकिन इनमें सीधे गुण या विधियाँ नहीं होती हैं। हालांकि, जावास्क्रिप्ट में, यहां तक कि प्राइमिटिव प्रकार के साथ भी, आवश्यकतानुसार विधियाँ और गुण प्रदान करने के लिए अस्थायी आवरण ऑब्जेक्ट स्वचालित रूप से बनाए जाते हैं।
1let text = "Hello";
2
3// A temporary String object is created,
4// allowing access to the length property
5console.log(text.length);- आवरण ऑब्जेक्ट स्पष्ट रूप से उत्पन्न किए गए ऑब्जेक्ट होते हैं जो स्मृति और प्रदर्शन को प्रभावित कर सकते हैं, इसलिए आम तौर पर प्राइमिटिव प्रकारों का उपयोग करने की सिफारिश की जाती है।
निष्कर्ष
- प्रिमिटिव प्रकार: हल्के प्रकार जैसे
number,string,boolean,null,undefined, औरsymbolजिनके पास प्रत्यक्ष विधियाँ नहीं होती हैं। - रैपर ऑब्जेक्ट्स:
Number,String, औरBooleanजैसे ऑब्जेक्ट्स जो अस्थायी रूप से प्रिमिटिव प्रकारों से परिवर्तित किए जाते हैं।
आप हमारे YouTube चैनल पर Visual Studio Code का उपयोग करके ऊपर दिए गए लेख के साथ आगे बढ़ सकते हैं। कृपया YouTube चैनल को भी देखें।