JavaScriptIntermediate
JavaScript Objects: Intermediate (অবজেক্ট)
Object method ও this, shorthand, computed key, spread, destructuring, array of objects, reference, Object.assign — বাংলায়।
20টি অংশবাংলা ভাষায়
প্রথমে object-এর ভিত্তি জানা হলো। এবার object-কে দিয়ে বাস্তব কাজ — method, destructuring, spread, array of objects — নিয়ে আলোচনা।
Object-এর মেথড ও this
const product = {
name: "কীবোর্ড",
price: 1500,
discountedPrice() {
return this.price * 0.9;
},
};
console.log(product.discountedPrice()); // 1350object-এর ভেতরের function-কে method বলে। মেথডের ভেতরে this দিয়ে নিজের object-এর property উল্লেখ করা হয় — এখানে this.price।
Shorthand ও computed key
const name = "আনামুল";
const age = 28;
// Shorthand — key আর ভেরিয়েবলের নাম এক হলে
const user = { name, age };
console.log(user); // { name: "আনামুল", age: 28 }
// Computed key — ভেরিয়েবল/expression-এর মান দিয়ে key
const keyName = "city";
const info = { [keyName]: "ঢাকা" };
console.log(info); // { city: "ঢাকা" }Spread (...) ব্যবহার
const base = { id: 1, name: "মোবাইল" };
const full = { ...base, price: 15000 };
console.log(full); // { id: 1, name: "মোবাইল", price: 15000 }
// পরের key আগেরটা override করে
const merged = { ...base, name: "স্মার্টফোন" };
console.log(merged.name); // "স্মার্টফোন"Destructuring
const user = { name: "আনামুল", age: 28, city: "ঢাকা" };
const { name, city } = user;
const { age = 0 } = user; // default value
console.log(name); // আনামুল
console.log(city); // ঢাকা
// নতুন নামে নিতে
const { name: fullName } = user;
console.log(fullName); // আনামুল// Rest — বাকিগুলো আলাদা object
const user = { name: "আনামুল", age: 28, city: "ঢাকা" };
const { name, ...rest } = user;
console.log(rest); // { age: 28, city: "ঢাকা" }Objects-এর array
const products = [
{ id: 1, name: "মোবাইল", price: 15000 },
{ id: 2, name: "ল্যাপটপ", price: 65000 },
{ id: 3, name: "হেডফোন", price: 2000 },
];
// Destructuring সহ for...of
for (const { name, price } of products) {
console.log(name, price);
}
// ফিল্টার + map একসাথে
const names = products.filter(p => p.price < 10000).map(p => p.name);
console.log(names); // ["হেডফোন"]Object.assign
const target = { a: 1 };
Object.assign(target, { b: 2 }, { c: 3 });
console.log(target); // { a: 1, b: 2, c: 3 }
// শুধু copy-র জন্য spread-ই যথেষ্ট:
const copy = { ...target };Reference একই object
const a = { name: "আনামুল" };
const b = a; // একই object-এর দিকে তাকায়
b.age = 28;
console.log(a); // { name: "আনামুল", age: 28 } — a-ও বদলে গেল
console.log(a === b); // trueব্যবহারিক দিক: দুটি object-কে === দিয়ে তুলনা করলে সম্পূর্ণ equal হবে না — reference তুলনা হয়, মান নয়।
| কৌশল | কাজ |
|---|---|
| method | object-এর ভেতরের function (this দিয়ে property) |
| shorthand | { name } — key: value গিয়ে লেখা |
| computed key | { [keyVar]: value } |
| spread | copy/merge — { ...obj } |
| destructuring | const { a, b } = obj — property খুলে নেওয়া |
| Object.assign | একাধিক object merge |
Deep copy নয়
{ ...obj } বা Object.assign shallow copy — ভেতরের nested object/array আগের reference-ই থাকে। deep copy দরকার হলে advanced chapter দেখুন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।