Academy

জাভাস্ক্রিপ্ট অবজেক্ট (JS Object)

Web Development - জাভাস্ক্রিপ্ট (JavaScript) - NCTB BOOK
Please, contribute to add content into জাভাস্ক্রিপ্ট অবজেক্ট (JS Object).
Content

জাভাস্ক্রিপ্ট অবজেক্ট ডেফিনিশন (JS Object Definition)

জাভাস্ক্রিপ্ট অবজেক্ট

জাভাস্ক্রিপ্টে অবজেক্ট হলো মূল। আপনি যদি অবজেক্ট বুঝতে পারেন, তাহলে পুরো জাভাস্ক্রিপ্ট বুঝতে পারবেন।

জাভাস্ক্রিপ্টে প্রায় সবকিছুই অবজেক্ট।

  1. বুলিয়ান অবজেক্ট হতে পারে
  2. নম্বর অবজেক্ট হতে পারে
  3. স্ট্রিং-ও অবজেক্ট হতে পারে
  4. তারিখ সবসময় অবজেক্ট
  5. ম্যাথ সবসময় অবজেক্ট
  6. রেগুলার এক্সপ্রেশন সবসময় অবজেক্ট
  7. অ্যারে সবসময় অবজেক্ট
  8. ফাংশন সবসময় অবজেক্ট
  9. অবজেক্ট সবসময় অবজেক্ট

জাভাস্ক্রিপ্টে প্রিমিটিভ ভ্যালু ব্যতীত সকল ভ্যালুই অবজেক্ট।

প্রিমিটিভ ভ্যালু হলোঃ স্ট্রিং("Azizur Rahman"), নম্বর(৩.১৪), true, false, null এবং undefined  


অবজেক্ট ভ্যারিয়েবল ধারনকারী ভ্যারিয়েবল

জাভাস্ক্রিপ্ট ভ্যারিয়েবলে মাত্র একটি মান রাখা যায়ঃ

kt_satt_skill_example_id=1228

অবজেক্টও ভ্যারিয়েবল, কিন্তু অবজেক্টে অনেক মান রাখা যায়।

ভ্যালুগুলো name : value জোড়ায় জোড়ায় লিখা হয়(name এবং value কোলনের মাধ্যমে আলাদা করা হয়)।

kt_satt_skill_example_id=1230

জাভাস্ক্রিপ্ট অবজেক্টে ভ্যালুর একটি নাম থাকে।


অবজেক্ট প্রোপার্টি

জাভাস্ক্রিপ্ট অবজেক্টের নামযুক্ত এইসব ভ্যালুকে প্রোপার্টি বলে।

প্রোপার্টিভ্যালু
firstNameAzizur
lastNameRahman
age32
eyeColorblack

অবজেক্ট মেথড

মেথড হলো অবজেক্টের কার্যক্রম যা অবজেক্টের মাধ্যমে সম্পাদিত হয়।

অবজেক্ট প্রোপার্টিগুলো প্রিমিটিভ ভ্যালু, অবজেক্ট এবং ফাংশন হতে পারে।

অবজেক্ট মেথড হলো একটি অবজেক্ট প্রোপার্টি যার মধ্যে ভ্যালু হিসেবে একটি ফাংশন ডেফিনেশন থাকে।

প্রোপার্টিভ্যালু
firstNameAzizur
lastNameRahman
age32
eyeColorblack
fullNamefunction() {return this.firstName + " " + this.lastName;}

জাভাস্ক্রিপ্ট অবজেক্ট তৈরি

জাভাস্ক্রিপ্টে অবজেক্ট তৈরি করার কয়েকটি উপায় রয়েছেঃ

  1. অবজেক্ট লিটারাল ব্যবহার করে একটি অবজেক্ট তৈরি করা যায়।
  2. new কি-ওয়ার্ড ব্যবহার করে একটি অবজেক্ট তৈরি করা যায়।
  3. অবজেক্ট কনস্ট্রাক্টর ডিফাইন করে তারপর ঐ কনস্ট্রাক্টর টাইপ থেকে অবজেক্ট তৈরি করা যায়।
  4. ES5-এ Object.create() ফাংশনের মাধ্যমে অবজেক্ট তৈরি করা যায়।

অবজেক্ট লিটারাল ব্যবহার করে অবজেক্ট তৈরি

জাভাস্ক্রিপ্ট অবজেক্ট তৈরি করার এটিই সবচেয়ে সহজ পদ্বতি।

অবজেক্ট লিটারাল ব্যবহার করে একটি স্টেটমেন্টে অবজেক্ট ডিফাইন এবং তৈরি করা যায়।

অবজেক্ট লিটারাল হলো দ্বিতীয় বন্ধনীর {} মধ্যে কিছু name:value এর জোড়ার লিস্ট।

kt_satt_skill_example_id=1231

new কী-ওয়ার্ড ব্যবহার করে অবজেক্ট তৈরি

kt_satt_skill_example_id=1233

উপরের দুটি উদাহরণ একই রকম কাজ করে। তাই new Object() ব্যবহার করার প্রয়োজন নেই।


অবজেক্ট কনস্ট্রাক্টর ব্যবহার করে অবজেক্ট তৈরি

উপরের পদ্ধতিগুলোর কিছু সীমাবদ্ধতা আছে। কারন এগুলোর মাধ্যমে শুধুমাত্র একটি অবজেক্ট তৈরি করা যায়।

মাঝে মাঝে আমাদের একই ধরনের অনেক অবজেক্টের প্রয়োজন হতে পারে। তাই আমরা একটি অবজেক্ট টাইপ ব্যবহার করতে পারি।

অবজেক্ট টাইপ তৈরি করার আদর্শ পদ্ধতি হলো কনস্ট্রাক্টর ফাংশন ব্যবহার করাঃ

kt_satt_skill_example_id=1235

উপরের ফাংশনটি একটি অবজেক্ট কনস্ট্রাক্টর।

আপনার একটি অবজেক্ট কনস্ট্রাক্টর থাকলে আপনি একই টাইপের অনেক অবজেক্ট তৈরি করতে পারবেনঃ

kt_satt_skill_example_id=1236

this কি-ওয়ার্ড

জাভাস্ক্রিপ্টে, যে অবজেক্টের কোডের মধ্যে this কি-ওয়ার্ড থাকে মূলত এই this এর মাধ্যমে ঐ অবজেক্টকে বুঝায়।

যদি কোন অবজেক্টের ফাংশনে this ব্যবহার করা হয়,তাহলে this এর ভ্যালু হচ্ছে ঐ ফাংশনটি যে অবজেক্টে রয়েছে।

যখন অবজেক্টের মধ্যে this ব্যবহার করা হয়, এর ভ্যালু ঐ অবজেক্টটি।

অবজেক্ট কনস্ট্রাক্টরের মধ্যে this কি-ওয়ার্ডের কোন ভ্যালু থাকে না।

অবজেক্ট তৈরি করার জন্য যখন অবজেক্ট কনস্ট্রাক্টর ব্যবহার করা হয় তখন this এর ভ্যালু হয় নতুন অবজেক্টটি।

this কোন ভ্যারিয়েবল নয়। এটি একটি কী-ওয়ার্ড। আপনি this এর ভ্যালু পরিবর্তন করতে পারবেন না।


বিল্ট-ইন জাভাস্ক্রিপ্ট কনস্ট্রাক্টর

জাভাস্ক্রিপ্টের কিছু বিল্ট-ইন কনস্ট্রাক্টরের উদাহরণ নিচে দেওয়া হলোঃ

kt_satt_skill_example_id=1238

Math() অবজেক্টটি এই লিস্টের মধ্যে নেই। Math একটি গ্লোবাল অবজেক্ট। Math অবজেক্টে new কি-ওয়ার্ডটি ব্যবহার করা যায় না।


জাভাস্ক্রিপ্ট অবজেক্টগুলো মিউটেবল

জাভাস্ক্রিপ্ট অবজেক্টকে তার ভ্যালুর মাধ্যমে পরিচয় করা হয় না, এর নামের মাধ্যমে করা হয়।

kt_satt_skill_example_id=1239

উপরের উদাহরণটিতে person যদি একটি অবজেক্ট হয়,তাহলে উপরের এসাইনমেন্টটির মাধ্যমে আমরা person অবজেক্টকেই x এর মধ্যে রাখলাম,আমরা person এর মত হুবহু আরেকটি অবজেক্ট তৈরি করিনি। এখন person কে আমরা x এর মাধ্যমে এক্সেস করতে পারবো। x এর মধ্যে পরিবর্তন করলে person এর মধ্যেও পরিবর্তন হবে, কারণ তারা একই অবজেক্ট।

kt_satt_skill_example_id=1240

নোটঃ জাভাস্ক্রিপ্ট ভ্যারিয়েবল মিউটেবল নয়। শুধুমাত্র অবজেক্ট মিউটেবল।

Content added || updated By

জাভাস্ক্রিপ্ট অবজেক্ট প্রোপার্টি (JS Object Property)

জাভাস্ক্রিপ্ট অবজেক্টের সবচেয়ে গুরুত্বপূর্ণ অংশ হলো প্রোপার্টি।


জাভাস্ক্রিপ্ট প্রোপার্টি

জাভাস্ক্রিপ্ট অবজেক্টের ভ্যালুকে প্রোপার্টি বলা হয়।

প্রোপার্টিগুলোকে পরিবর্তন করা যায়, নতুন প্রোপার্টি যোগ করা যায় এবং ডিলেট করা যায়। কিন্তু কিছু প্রোপার্টি আছে যেগুলো পরিবর্তন করা যায় না।


জাভাস্ক্রিপ্ট প্রোপার্টি এক্সেস

গঠনপ্রণালীঃ

kt_satt_skill_example_id=1241

অথবা

kt_satt_skill_example_id=1242

অথবা

kt_satt_skill_example_id=1244

এক্সপ্রেশনে অবশ্যই প্রোপার্টির নাম উল্লেখ করতে হবে।

kt_satt_skill_example_id=1245

kt_satt_skill_example_id=1246

জাভাস্ক্রিপ্ট for...in লু্প

জাভাস্ক্রিপ্টের for...in স্টেটমেন্ট অবজেক্টের প্রোপার্টির মধ্যে লুপ করে।

গঠনপ্রণালীঃ

kt_satt_skill_example_id=1247

প্রত্যেকটি প্রোপার্টির জন্য for...in লু্পের কোডগুলো একবার করে এক্সিকিউট হবে।

kt_satt_skill_example_id=1249

নতুন প্রোপার্টি যুক্ত করা

একটি অবজেক্টে নতুন প্রোপার্টি যোগ করতে, প্রোপার্টির নাম লিখে ভ্যালু দিয়ে দিলেই হয়ে যায়।
ধরুণ, person নামের একটি অবজেক্ট রয়েছে যাতে আপনি নতুন একটি প্রোপার্টি যুক্ত করবেনঃ

kt_satt_skill_example_id=1251

প্রোপার্টি ডিলেট করা

অবজেক্টের প্রোপার্টি ডিলেট করার জন্য delete কি-ওয়ার্ডটি ব্যবহার করা হয়ঃ

kt_satt_skill_example_id=1253

delete কি-ওয়ার্ড একটি অবজেক্টের প্রোপার্টি এবং তার ভ্যালু ডিলেট করে।

অবজেক্টে ব্যবহারের জন্যই delete প্রোপার্টি তৈরি করা হয়েছে, ভ্যারিয়েবল এবং ফাংশনে এর কোন ব্যবহার নেই।


প্রোপার্টি এট্রিবিউট

সকল প্রোপার্টির একটি নাম আছে, এছাড়া এর একটি ভ্যালুও আছে।

প্রোপার্টির এট্রিবিউটগুলোর মধ্যে একটি হলো value ।

অন্যান্য এট্রিবিউটগুলো হলোঃ enumerable, configurable, এবং writable

এই এট্রিবিউটগুলো প্রোপার্টি এক্সেসের প্রাইভেসি ডিফাইন করে।

জাভাস্ক্রিপ্টে সকল এট্রিবিউটকে পড়া যায়, শুধুমাত্র ভ্যালু এট্রিবিউটকে পরিবর্তন করা যায়।


প্রোটোটাইপ প্রোপার্টি

জাভাস্ক্রিপ্ট অবজেক্ট তার প্রোটোটাইপের প্রোপার্টিগুলো ইনহেরিট করে।

delete কি-ওয়ার্ডটি ইনহেরিটেড প্রোপার্টিগুলো ডিলিট করে না, কিন্তু আপনি যদি প্রোটোটাইপ প্রোপার্টি ডিলেট করেন, এর ফলে সকল অবজেক্ট প্রভাবিত হবে।

Content added || updated By

জাভাস্ক্রিপ্ট অবজেক্ট মেথড (JS Object Method)

জাভাস্ক্রিপ্ট মেথড

মেথড হলো অবজেক্টের কার্যক্রম যা অবজেক্টের মাধ্যমে সম্পাদিত হয়।

অবজেক্ট মেথড হলো একটি অবজেক্ট প্রোপার্টি যার মধ্যে ভ্যালু হিসেবে একটি ফাংশন ডেফিনেশন থাকে।

প্রোপার্টিভ্যালু
firstNameAzizur
lastNameRahman
age32
eyeColorblack
fullNamefunction() {return this.firstName + " " + this.lastName;}

মেথডগুলো হলো ফাংশন যা অবজেক্টের প্রোপার্টি হিসেবে থাকে।


অবজেক্ট মেথড এক্সেস

অবজেক্ট মেথড তৈরির গঠনপ্রণালীঃ

kt_satt_skill_example_id=1265

অবজেক্ট মেথড এক্সেসের গঠনপ্রণালীঃ

kt_satt_skill_example_id=1266

আপনি fullName() কে person অবজেক্টের মেথড এবং fullName কে প্রোপার্টি হিসেবে বর্ণনা করবেন।

যখন fullName প্রোপার্টিকে () এর মাধ্যমে কল করা হবে তখন এটি ফাংশন হিসেবে এক্সিকিউট হবে।

এই উদাহরণটি person অবজেক্টের fullName() মেথডকে এক্সেস করেঃ

kt_satt_skill_example_id=1267

আপনি () ছাড়া fullName প্রোপার্টিকে এক্সেস করলে ইহা সম্পূর্ন ফাংশন ডেফিনেশন রিটার্ন করবেঃ

kt_satt_skill_example_id=1269

বিল্ট-ইন মেথডের ব্যবহার

এই উদাহরণে স্ট্রিং অবজেক্টের toUpperCase() মেথড ব্যবহার করে একটি টেক্সটকে বড়হাতের অক্ষরে পরিণত করা হয়েছেঃ

kt_satt_skill_example_id=1271

কোড এক্সিকিউশনের পর x এর ভ্যালুঃ

kt_satt_skill_example_id=1273

নতুন মেথড যুক্ত করা

অবজেক্টের জন্য মেথড যোগ করতে এর কনস্ট্রাক্টর ফাংশনে মেথড ডিফাইন করা হয়ঃ

kt_satt_skill_example_id=1275

changeName() ফাংশন name এর ভ্যালুকে person এর lastName প্রোপার্টিতে এসাইন করে।

kt_satt_skill_example_id=1277

Content added || updated By

জাভাস্ক্রিপ্ট অবজেক্ট ডিসপ্লে (JS Object Display)

Please, contribute to add content into জাভাস্ক্রিপ্ট অবজেক্ট ডিসপ্লে (JS Object Display).
Content

জাভাস্ক্রিপ্ট অবজেক্ট এক্সেসর (JS Object Accessor)

Please, contribute to add content into জাভাস্ক্রিপ্ট অবজেক্ট এক্সেসর (JS Object Accessor).
Content

জাভাস্ক্রিপ্ট অবজেক্ট কন্সট্রাক্টর (JS Object Constructor)

Please, contribute to add content into জাভাস্ক্রিপ্ট অবজেক্ট কন্সট্রাক্টর (JS Object Constructor).
Content

জাভাস্ক্রিপ্ট অবজেক্ট প্রোটোটাইপ (JS Object Prototype)

প্রতিটি জাভাস্ক্রিপ্ট অবজেক্টের একটি প্রোটোটাইপ থাকে। প্রোটোটাইপও একটি অবজেক্ট।


জাভাস্ক্রিপ্ট প্রোটোটাইপ

সকল জাভাস্ক্রিপ্ট অবজেক্ট তাদের প্রোপার্টি এবং মেথড তাদের প্রোটোটাইপ থেকে পায়।

অবজেক্ট লিটারাল অথবা new Object() দ্বারা তৈরি অবজেক্ট Object.prototype থেকে ইনহেরিট করে।

new Date() থেকে তৈরি অবজেক্ট Date.prototype থেকে ইনহেরিট করে।

Object.prototype হলো প্রোটোটাইপ চেইনের মধ্যে সবার উপরে।

সকল জাভাস্ক্রিপ্ট অবজেক্ট Object.prototype থেকে ইনহেরিট করে।


প্রোটোটাইপ তৈরি

অবজেক্ট প্রোটোটাইপ তৈরির আদর্শ পদ্ধতি হচ্ছে একটি অবজেক্ট কনস্ট্রাক্টর ব্যবহার করাঃ

kt_satt_skill_example_id=1281

একই প্রোটোটাইপ থেকে একাধিক অবজেক্ট তৈরি করতে new কি-ওয়ার্ড ব্যবহার করে কনস্ট্রাক্টর ফাংশনকে কল করতে হয়ঃ

kt_satt_skill_example_id=1283

কনস্ট্রাক্টর ফাংশনটি Person এর সকল অবজেক্টের প্রোটোটাইপ।
কনস্ট্রাক্টর ফাংশনকে বুঝার জন্য এর নামের প্রথম অক্ষর বড়হাতের দেওয়া ভালো(তবে এটি বাধ্যতামূলক নয়)।


অবজেক্টে প্রোপার্টি যুক্ত করা

তৈরিকৃত অবজেক্টে নতুন প্রোপার্টি যুক্ত করা খুবই সহজঃ

kt_satt_skill_example_id=1284

এই প্রোপার্টিটি শুধুমাত্র myFather অবজেক্টে যুক্ত হবে। ইহা myMother অথবা অন্য কোন Person অবজেক্টে যুক্ত হবে না।


অবজেক্টে মেথড যুক্ত করা

তৈরিকৃত অবজেক্টে নতুন মেথড যুক্ত করাও সহজঃ

kt_satt_skill_example_id=1286

মেথডটি myFather অবজেক্টে যুক্ত হবে, myMother অবজেক্টে যুক্ত হবে না।


প্রোটোটাইপে প্রোপার্টি যুক্তকরন

প্রোটোটাইপে প্রোপার্টি যুক্ত করা অবজেক্টে প্রোপার্টি যুক্ত করার চেয়ে ভিন্ন।

kt_satt_skill_example_id=1287

প্রোটোটাইপে নতুন প্রোপার্টি যুক্ত করতে হলে, অবশ্যই আপনাকে ইহা কনস্ট্রাক্টর ফাংশনে যু্ক্ত করতে হবেঃ

kt_satt_skill_example_id=1288

প্রোটোটাইপের প্রোপার্টিতে ডিফল্ট ভ্যালু থাকতে পারে।


প্রোটোটাইপে মেথড যুক্ত করা

কনস্ট্রাক্টর ফাংশনে মেথডও ডিফাইন করা যায়ঃ

kt_satt_skill_example_id=1289

prototype প্রোপার্টির ব্যবহার

জাভাস্ক্রিপ্ট prototype প্রোপার্টি আপনাকে তৈরিকৃত একটি প্রোটোটাইপে নতুন প্রোপার্টি এবং মেথড যুক্ত করতে সাহায্য করেঃ

kt_satt_skill_example_id=1290

kt_satt_skill_example_id=1291

Content added || updated By

জাভাস্ক্রিপ্ট অবজেক্ট ইটারেবল (JS Object Iterable)

Please, contribute to add content into জাভাস্ক্রিপ্ট অবজেক্ট ইটারেবল (JS Object Iterable).
Content

জাভাস্ক্রিপ্ট অবজেক্ট সেট (JS Object Set)

Please, contribute to add content into জাভাস্ক্রিপ্ট অবজেক্ট সেট (JS Object Set).
Content

জাভাস্ক্রিপ্ট অবজেক্ট ম্যাপ (JS Object Map)

Please, contribute to add content into জাভাস্ক্রিপ্ট অবজেক্ট ম্যাপ (JS Object Map).
Content

জাভাস্ক্রিপ্ট অবজেক্ট রেফারেন্স(JS Object Reference)

Please, contribute to add content into জাভাস্ক্রিপ্ট অবজেক্ট রেফারেন্স(JS Object Reference).
Content
Promotion