জাভাস্ক্রিপ্টে অবজেক্ট একটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার যা বিভিন্ন ধরনের ডেটা এবং ফাংশন সংরক্ষণ এবং পরিচালনা করার জন্য ব্যবহৃত হয়। অবজেক্টগুলি প্রোপার্টি এবং মেথডের সমন্বয়ে গঠিত, যা ডেটা এবং আচরণকে একসাথে সংযুক্ত করে।
একটি অবজেক্ট হল এমন একটি কন্টেইনার যা কীগুলির মাধ্যমে মান (value) সংরক্ষণ করে। প্রতিটি কী একটি স্ট্রিং বা সিম্বল হতে পারে এবং প্রতিটি মান যেকোনো ডেটা টাইপের হতে পারে, যেমন সংখ্যা, স্ট্রিং, অ্যারে, অন্য অবজেক্ট, বা ফাংশন।
const person = {
name: "Alice",
age: 30,
isEmployed: true
};
এখানে, person
একটি অবজেক্ট যা name
, age
, এবং isEmployed
প্রোপার্টি ধারণ করে।
অবজেক্ট লিটারেল ব্যবহার করে সহজেই একটি অবজেক্ট তৈরি করা যায়।
const car = {
make: "Toyota",
model: "Corolla",
year: 2020
};
কনস্ট্রাক্টর ফাংশন ব্যবহার করে অবজেক্ট তৈরি করা যায় যা প্রোপার্টি ইনিশিয়ালাইজ করতে সাহায্য করে।
function Person(name, age) {
this.name = name;
this.age = age;
}
const person1 = new Person("Bob", 25);
const person2 = new Person("Charlie", 28);
ES6 থেকে পরিচিত ক্লাস সিনট্যাক্স ব্যবহার করে অবজেক্ট তৈরি করা যায়, যা ইনহেরিটেন্স এবং মেথড ডিফাইনেশনে সহজতা আনে।
class Animal {
constructor(name, species) {
this.name = name;
this.species = species;
}
speak() {
console.log(`${this.name} says hello!`);
}
}
const animal1 = new Animal("Leo", "Lion");
animal1.speak(); // আউটপুট: Leo says hello!
ডট নোটেশন ব্যবহার করে অবজেক্টের প্রোপার্টি অ্যাক্সেস করা যায়।
console.log(person.name); // আউটপুট: Alice
console.log(person.age); // আউটপুট: 30
ব্র্যাকেট নোটেশন ব্যবহার করে অবজেক্টের প্রোপার্টি অ্যাক্সেস করা যায়, যা ডাইনামিক কী অ্যাক্সেসের জন্য উপযুক্ত।
console.log(person["name"]); // আউটপুট: Alice
console.log(person["age"]); // আউটপুট: 30
const prop = "isEmployed";
console.log(person[prop]); // আউটপুট: true
person.name = "Alicia";
person.age = 31;
console.log(person.name); // আউটপুট: Alicia
console.log(person.age); // আউটপুট: 31
person["name"] = "Alisha";
person["age"] = 32;
console.log(person["name"]); // আউটপুট: Alisha
console.log(person["age"]); // আউটপুট: 32
অবজেক্টের প্রোপার্টি হিসেবে ফাংশন সংরক্ষণ করে মেথড তৈরি করা যায়।
const calculator = {
add: function(a, b) {
return a + b;
},
subtract(a, b) {
return a - b;
}
};
console.log(calculator.add(5, 3)); // আউটপুট: 8
console.log(calculator.subtract(5, 3)); // আউটপুট: 2
this
কিওয়ার্ডthis
কিওয়ার্ড অবজেক্টের বর্তমান কনটেক্সট নির্দেশ করে। মেথডের মধ্যে this
সাধারণত সেই অবজেক্টকে রেফার করে যার মাধ্যমে মেথডটি কল করা হয়েছে।
const user = {
name: "Diana",
greet: function() {
console.log(`Hello, my name is ${this.name}!`);
}
};
user.greet(); // আউটপুট: Hello, my name is Diana!
এখানে, this.name
user
অবজেক্টের name
প্রোপার্টি নির্দেশ করছে।
জাভাস্ক্রিপ্টে প্রতিটি অবজেক্টের একটি প্রোটোটাইপ থাকে, যা তাকে বৈশিষ্ট্য এবং মেথড উত্তরাধিকারসূত্রে দেয়। এটি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিংয়ের মৌলিক ধারণা।
function Vehicle(type) {
this.type = type;
}
Vehicle.prototype.describe = function() {
console.log(`This is a ${this.type}.`);
};
const car = new Vehicle("car");
car.describe(); // আউটপুট: This is a car.
এখানে, Vehicle
ফাংশনটি প্রোটোটাইপে একটি describe
মেথড সংজ্ঞায়িত করেছে, যা car
অবজেক্ট থেকে অ্যাক্সেস করা যায়।
কোনো অবজেক্টের সমস্ত কী গুলোর একটি অ্যারে রিটার্ন করে।
const keys = Object.keys(person);
console.log(keys); // আউটপুট: ["name", "age", "isEmployed"]
কোনো অবজেক্টের সমস্ত ভ্যালু গুলোর একটি অ্যারে রিটার্ন করে।
const values = Object.values(person);
console.log(values); // আউটপুট: ["Alisha", 32, true]
কোনো অবজেক্টের সমস্ত কী-ভ্যালু জোড়া গুলোর একটি অ্যারে রিটার্ন করে।
const entries = Object.entries(person);
console.log(entries);
// আউটপুট: [["name", "Alisha"], ["age", 32], ["isEmployed", true]]
অবজেক্ট ডিসট্রাকচারিং ব্যবহার করে অবজেক্টের প্রোপার্টি গুলোকে সহজে ভেরিয়েবল হিসেবে অ্যাক্সেস করা যায়।
const { name, age } = person;
console.log(name); // আউটপুট: Alisha
console.log(age); // আউটপুট: 32
স্প্রেড অপারেটর ব্যবহার করে অবজেক্টের প্রোপার্টি গুলোকে কপি বা মিশ্রিত করা যায়।
const personCopy = { ...person };
console.log(personCopy);
// আউটপুট: { name: "Alisha", age: 32, isEmployed: true }
const additionalInfo = { city: "Dhaka", country: "Bangladesh" };
const fullPerson = { ...person, ...additionalInfo };
console.log(fullPerson);
// আউটপুট: { name: "Alisha", age: 32, isEmployed: true, city: "Dhaka", country: "Bangladesh" }
জাভাস্ক্রিপ্ট অবজেক্টকে JSON (JavaScript Object Notation) এ রূপান্তর এবং বিপরীত করার জন্য JSON.stringify()
এবং JSON.parse()
মেথড ব্যবহার করা হয়।
const jsonString = JSON.stringify(person);
console.log(jsonString);
// আউটপুট: {"name":"Alisha","age":32,"isEmployed":true}
const jsonObject = JSON.parse(jsonString);
console.log(jsonObject);
// আউটপুট: { name: "Alisha", age: 32, isEmployed: true }
জাভাস্ক্রিপ্ট অবজেক্টগুলি ডেটা এবং ফাংশনগুলিকে একসাথে সংরক্ষণ এবং পরিচালনা করার একটি শক্তিশালী উপায় প্রদান করে। অবজেক্ট লিটারেল, কনস্ট্রাক্টর ফাংশন, এবং ক্লাসের মাধ্যমে অবজেক্ট তৈরি করা যায়। প্রোপার্টি অ্যাক্সেস, মেথড, this
কিওয়ার্ড, প্রোটোটাইপ, এবং অবজেক্ট মেথডগুলি অবজেক্ট ম্যানিপুলেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে। অবজেক্ট ডিসট্রাকচারিং, স্প্রেড অপারেটর, এবং JSON এর মাধ্যমে অবজেক্টগুলির সাথে কাজ করা আরও সহজ এবং কার্যকরী হয়। সঠিক বেস্ট প্র্যাকটিস অনুসরণ করে অবজেক্টের ব্যবহার কোডের সংগঠন, রক্ষণাবেক্ষণযোগ্যতা এবং কার্যকারিতা বৃদ্ধি করে।
জাভাস্ক্রিপ্টে অবজেক্ট একটি গুরুত্বপূর্ণ ডেটা স্ট্রাকচার যা বিভিন্ন ধরনের ডেটা এবং ফাংশন সংরক্ষণ এবং পরিচালনা করার জন্য ব্যবহৃত হয়। অবজেক্টগুলি প্রোপার্টি এবং মেথডের সমন্বয়ে গঠিত, যা ডেটা এবং আচরণকে একসাথে সংযুক্ত করে।
একটি অবজেক্ট হল এমন একটি কন্টেইনার যা কীগুলির মাধ্যমে মান (value) সংরক্ষণ করে। প্রতিটি কী একটি স্ট্রিং বা সিম্বল হতে পারে এবং প্রতিটি মান যেকোনো ডেটা টাইপের হতে পারে, যেমন সংখ্যা, স্ট্রিং, অ্যারে, অন্য অবজেক্ট, বা ফাংশন।
const person = {
name: "Alice",
age: 30,
isEmployed: true
};
এখানে, person
একটি অবজেক্ট যা name
, age
, এবং isEmployed
প্রোপার্টি ধারণ করে।
অবজেক্ট লিটারেল ব্যবহার করে সহজেই একটি অবজেক্ট তৈরি করা যায়।
const car = {
make: "Toyota",
model: "Corolla",
year: 2020
};
কনস্ট্রাক্টর ফাংশন ব্যবহার করে অবজেক্ট তৈরি করা যায় যা প্রোপার্টি ইনিশিয়ালাইজ করতে সাহায্য করে।
function Person(name, age) {
this.name = name;
this.age = age;
}
const person1 = new Person("Bob", 25);
const person2 = new Person("Charlie", 28);
ES6 থেকে পরিচিত ক্লাস সিনট্যাক্স ব্যবহার করে অবজেক্ট তৈরি করা যায়, যা ইনহেরিটেন্স এবং মেথড ডিফাইনেশনে সহজতা আনে।
class Animal {
constructor(name, species) {
this.name = name;
this.species = species;
}
speak() {
console.log(`${this.name} says hello!`);
}
}
const animal1 = new Animal("Leo", "Lion");
animal1.speak(); // আউটপুট: Leo says hello!
ডট নোটেশন ব্যবহার করে অবজেক্টের প্রোপার্টি অ্যাক্সেস করা যায়।
console.log(person.name); // আউটপুট: Alice
console.log(person.age); // আউটপুট: 30
ব্র্যাকেট নোটেশন ব্যবহার করে অবজেক্টের প্রোপার্টি অ্যাক্সেস করা যায়, যা ডাইনামিক কী অ্যাক্সেসের জন্য উপযুক্ত।
console.log(person["name"]); // আউটপুট: Alice
console.log(person["age"]); // আউটপুট: 30
const prop = "isEmployed";
console.log(person[prop]); // আউটপুট: true
person.name = "Alicia";
person.age = 31;
console.log(person.name); // আউটপুট: Alicia
console.log(person.age); // আউটপুট: 31
person["name"] = "Alisha";
person["age"] = 32;
console.log(person["name"]); // আউটপুট: Alisha
console.log(person["age"]); // আউটপুট: 32
অবজেক্টের প্রোপার্টি হিসেবে ফাংশন সংরক্ষণ করে মেথড তৈরি করা যায়।
const calculator = {
add: function(a, b) {
return a + b;
},
subtract(a, b) {
return a - b;
}
};
console.log(calculator.add(5, 3)); // আউটপুট: 8
console.log(calculator.subtract(5, 3)); // আউটপুট: 2
this
কিওয়ার্ডthis
কিওয়ার্ড অবজেক্টের বর্তমান কনটেক্সট নির্দেশ করে। মেথডের মধ্যে this
সাধারণত সেই অবজেক্টকে রেফার করে যার মাধ্যমে মেথডটি কল করা হয়েছে।
const user = {
name: "Diana",
greet: function() {
console.log(`Hello, my name is ${this.name}!`);
}
};
user.greet(); // আউটপুট: Hello, my name is Diana!
এখানে, this.name
user
অবজেক্টের name
প্রোপার্টি নির্দেশ করছে।
জাভাস্ক্রিপ্টে প্রতিটি অবজেক্টের একটি প্রোটোটাইপ থাকে, যা তাকে বৈশিষ্ট্য এবং মেথড উত্তরাধিকারসূত্রে দেয়। এটি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিংয়ের মৌলিক ধারণা।
function Vehicle(type) {
this.type = type;
}
Vehicle.prototype.describe = function() {
console.log(`This is a ${this.type}.`);
};
const car = new Vehicle("car");
car.describe(); // আউটপুট: This is a car.
এখানে, Vehicle
ফাংশনটি প্রোটোটাইপে একটি describe
মেথড সংজ্ঞায়িত করেছে, যা car
অবজেক্ট থেকে অ্যাক্সেস করা যায়।
কোনো অবজেক্টের সমস্ত কী গুলোর একটি অ্যারে রিটার্ন করে।
const keys = Object.keys(person);
console.log(keys); // আউটপুট: ["name", "age", "isEmployed"]
কোনো অবজেক্টের সমস্ত ভ্যালু গুলোর একটি অ্যারে রিটার্ন করে।
const values = Object.values(person);
console.log(values); // আউটপুট: ["Alisha", 32, true]
কোনো অবজেক্টের সমস্ত কী-ভ্যালু জোড়া গুলোর একটি অ্যারে রিটার্ন করে।
const entries = Object.entries(person);
console.log(entries);
// আউটপুট: [["name", "Alisha"], ["age", 32], ["isEmployed", true]]
অবজেক্ট ডিসট্রাকচারিং ব্যবহার করে অবজেক্টের প্রোপার্টি গুলোকে সহজে ভেরিয়েবল হিসেবে অ্যাক্সেস করা যায়।
const { name, age } = person;
console.log(name); // আউটপুট: Alisha
console.log(age); // আউটপুট: 32
স্প্রেড অপারেটর ব্যবহার করে অবজেক্টের প্রোপার্টি গুলোকে কপি বা মিশ্রিত করা যায়।
const personCopy = { ...person };
console.log(personCopy);
// আউটপুট: { name: "Alisha", age: 32, isEmployed: true }
const additionalInfo = { city: "Dhaka", country: "Bangladesh" };
const fullPerson = { ...person, ...additionalInfo };
console.log(fullPerson);
// আউটপুট: { name: "Alisha", age: 32, isEmployed: true, city: "Dhaka", country: "Bangladesh" }
জাভাস্ক্রিপ্ট অবজেক্টকে JSON (JavaScript Object Notation) এ রূপান্তর এবং বিপরীত করার জন্য JSON.stringify()
এবং JSON.parse()
মেথড ব্যবহার করা হয়।
const jsonString = JSON.stringify(person);
console.log(jsonString);
// আউটপুট: {"name":"Alisha","age":32,"isEmployed":true}
const jsonObject = JSON.parse(jsonString);
console.log(jsonObject);
// আউটপুট: { name: "Alisha", age: 32, isEmployed: true }
জাভাস্ক্রিপ্ট অবজেক্টগুলি ডেটা এবং ফাংশনগুলিকে একসাথে সংরক্ষণ এবং পরিচালনা করার একটি শক্তিশালী উপায় প্রদান করে। অবজেক্ট লিটারেল, কনস্ট্রাক্টর ফাংশন, এবং ক্লাসের মাধ্যমে অবজেক্ট তৈরি করা যায়। প্রোপার্টি অ্যাক্সেস, মেথড, this
কিওয়ার্ড, প্রোটোটাইপ, এবং অবজেক্ট মেথডগুলি অবজেক্ট ম্যানিপুলেশনে গুরুত্বপূর্ণ ভূমিকা পালন করে। অবজেক্ট ডিসট্রাকচারিং, স্প্রেড অপারেটর, এবং JSON এর মাধ্যমে অবজেক্টগুলির সাথে কাজ করা আরও সহজ এবং কার্যকরী হয়। সঠিক বেস্ট প্র্যাকটিস অনুসরণ করে অবজেক্টের ব্যবহার কোডের সংগঠন, রক্ষণাবেক্ষণযোগ্যতা এবং কার্যকারিতা বৃদ্ধি করে।