জাভাস্ক্রিপ্টে মোড়ানো অবজেক্টস

জাভাস্ক্রিপ্টে মোড়ানো অবজেক্টস

এই প্রবন্ধটি জাভাস্ক্রিপ্টে মোড়ানো অবজেক্ট সম্পর্কে আলোচনা করে।

YouTube Video

র‍্যাপার অবজেক্টস

জাভাস্ক্রিপ্টে প্রাথমিক প্রকারসমূহ এবং সেগুলিকে পরিচালনার জন্য অবজেক্টস রয়েছে (র‍্যাপার অবজেক্টস)।

প্রাথমিক প্রকারসমূহ

মূল ধরনেরা একটি একক মান উপস্থাপন করে এবং এগুলি সহজ ও হালকা হয়। এগুলি অপরিবর্তনীয় (পরিবর্তন করা যায় না) এবং সরাসরি অবজেক্ট মেথড বা প্রপার্টি থাকে না, তবে অপারেশনের জন্য এগুলি সাময়িকভাবে র‍্যাপার অবজেক্টে রূপান্তর করা যেতে পারে।

string এবং number হলো মূল ধরনের উদাহরণ। অন্যদিকে, র‌্যাপার অবজেক্টগুলো বড় অক্ষরে শুরু হয়, যেমন String এবং Number

মোড়ানো অবজেক্টস

প্রিমিটিভ টাইপ নিয়ন্ত্রণ করার জন্য, জাভাস্ক্রিপ্ট সাময়িকভাবে মোড়ক অবজেক্ট (Object মোড়ক) তৈরি করে। মোড়ক অবজেক্টগুলিতে প্রিমিটিভ টাইপের জন্য মেথড এবং প্রপার্টি থাকে।

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"

  • new অপারেটর ব্যবহার করে নতুন একটি মোড়ক অবজেক্ট তৈরি করা এবং 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 Video