7.2 অবজেক্ট প্রপার্টি এবং মেথড:

 

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

অবজেক্টের প্রত্যেকটা key:value পেয়ারগুলোকে অবজেক্ট properties বলা হয়। যেমন উপরের student অবজেক্টে name: ’Mehedi’ আর class: 12 অবজেক্টের properties।

অবজেক্টের properties গুলোকে আমরা দুইভাবে এক্সেস করতে পারি। সেগুলো হচ্ছেঃ

১। ডট নোটেশন ব্যবহার করে

ডট নোটেশন দিয়ে অবজেক্ট এক্সেস করার সিনট্যাক্স এমন হয়ঃ

objectName.key

যেমন, উপরের student অবজেক্ট কে আমরা এভাবে এক্সেস করতে পারি।

// অবজেক্ট
const student = {
name: 'Mehedi',
class: 12
};

// ডট নোটেশন দিয়ে অবজেক্ট এক্সেস করা
console.log(student.name) // আউটপুটঃ Mehedi

২। ব্র্যাকেট নোটেশন ব্যবহার করে

ব্র্যাকেট নোটেশন দিয়ে অবজেক্ট এক্সেস করার সিনট্যাক্স এমন হয়ঃ

objectName["propertyName"]

যেমন, উপরের student অবজেক্ট কে আমরা এভাবে এক্সেস করতে পারিঃ

// অবজেক্ট
const student = {
name: 'Mehedi',
class: 12
};

// ব্র্যাকেট নোটেশন দিয়ে অবজেক্ট এক্সেস করা
console.log(student["name"]) // আউটপুটঃ Mehedi

এখন আমরা চাইলে নেস্টেড অবজেক্ট মানে একটা অবজেক্টের মধ্যে আরও অবজেক্ট ডিফাইন করতে পারি।

// অবজেক্ট
const student = {
   name: 'Mehedi',
   class: 12,
   marks: {
     physics: 80,
     biology: 55
   }
};

অবজেক্ট মেথড :

জাভাস্ক্রিপ্টে অবজেক্টের মধ্যে ফাংশনও থাকতে পারে। যেমনঃ

const student = {
   name: 'Mehedi',
   class: 12,
   greet: function (){
     console.log("Hello!")
   }
};

 

এটিও অবজেক্টের একটি প্রোপার্টি। এই ধরণের প্রোপার্টিকে মেথড বলা হয়। সোজা কোথায়, অবজেক্টের মধ্যের ফাংশনকেই মেথড বলা হয়।

আমরা নিচের মতো করে অবজেক্টের মেথড এক্সেস করতে পারিঃ

const student = {
   name: 'Mehedi',
   class: 12,
   greet: function (){
     console.log("Hello!")
   }
};

student.greet(); // আউটপুটঃ Hello!
উদাহরন
  •  নিম্নোক্ত অবজেক্টটি একটি নেস্টেড অবজেক্ট। কারণ এখানে একটি অবজেক্ট employeeInfo এর ভেতর salary এবং address নামের আরো দুটি অবজেক্ট রয়েছে।
    const employeeInfo = { 
      employeeName: "John Doe", 
      employeeId: 27, 
      salary: { 2018: "40000$", 2019: "50000$", 2020: "65000$" }, 
      address: { 
        locality: { address1: "bronx", address2: "Newyork", }, 
        city: "Newyork", country: "US" 
        } 
      }
    

     

  • নিম্নোক্ত অবজেক্টটিও একটি নেস্টেড অবজেক্ট। কারণ এখানে একটি অবজেক্ট person এ কতগুলো অবজেক্ট এর একটি অ্যারে রয়েছে যা cars ভ্যারিয়েবল এ এসাইন করা রয়েছে। অ্যারে নিজেও একটি অবজেক্ট।
const person = {
 firstName: "Elon",
 lastName: "Musk",
 age: 25,
 cars: [
  { name: "Ford", "models": ["Fiesta", "Focus", "Mustang"] },
  { name: "BMW", "models": ["320", "X3", "X5"] },
  { name: "Fiat", "models": ["500", "Panda"] }
 ]
};
  • অবজেক্ট এর প্রোপার্টি গুলো একসেস করাঃ
const lastName = person.age
console.log(person.age)

//returns array of names of his cars
const carNames = person.cars.map((car) => car.name)

এখানে person অবজেক্ট এর cars এর সবগুলো অবজেক্ট থেকে নামগুলো carNames নামক অ্যারে তে স্টোর করা হয়েছে।
map জাভাস্ক্রিপ্ট অ্যারে অবজেক্ট এর একটি মেথড।

এসো নিজে করি
  • const student = { 
        name: 'John', 
        age: 20,
        marks: {
            science: 70,
            math: 75
        }
    }

    অবজক্টটির ‘কি’ এবং ভ্যালু গুলো প্রিন্ট কর?

  • const myCar = {
      make: 'Ford',
      model: 'Mustang',
      year: 1969,
    };

    অবজেক্ট টিতে নতুন কিছু প্রোপার্টি যোগ কর।
    যেমনঃ color: ‘Red’, owner: “John”.

  • অবজেক্টটি নতুন ভ্যালু দিয়ে আপডেট কর।
    নতুন ভ্যালু সমূহঃ
    make: ‘Nissan’
    model: ‘300ZX’
    year: 1992
    owner: ‘Alex’
    color: ‘Blue’.
  • অবজেক্টটিতে displayCar নামে একটি মেথড যোগ কর যা Car এর সব ইনফরমেশন দেখাবে।
  • উদাহরন অংশের ১ নং অবজেক্ট টিকে তোমার নিজের তথ্য দিয়ে আপডেট কর।