Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • JavaScript Documentation48টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • JavaScript কী?
  • Syntax & Comments
  • Variables
  • Data Types: Basics
  • Data Types: Conversion
  • Data Types: Advanced
  • Strings
  • Numbers & Math
  • Date & Time
  • Operators
  • Conditions
  • Loops
  • Functions: Basics
  • Functions: Intermediate
  • Functions: Advanced
  • Scope & Hoisting
  • Closures & this
  • ES6+ Modern
  • Arrays: Basics
  • Arrays: Intermediate
  • Arrays: Advanced
  • Objects: Basics
  • Objects: Intermediate
  • Objects: Advanced
  • Class: Basics
  • Class: Intermediate
  • Class: Advanced
  • DOM: Basics
  • DOM: Intermediate
  • DOM: Advanced
  • Events: Basics
  • Events: Intermediate
  • Events: Advanced
  • Async JavaScript
  • Promise
  • Async / Await
  • Fetch API
  • JSON
  • Modules
  • Browser Storage
  • Event Loop Deep
  • Prototype Chain
  • Iterators & Generators
  • WeakMap, WeakSet, Proxy
  • Error Handling
  • Practice Problems
  • Mini Projects
  • Basics
  • Functions & Scope
  • Types & Syntax
  • Arrays & Objects
  • Advanced
  • Functional Programming
  • Objects & Symbols
  • Async Deep Dive
  • Modern JavaScript
  1. Docs
  2. JavaScript
  3. প্রশ্ন/উত্তর
  4. Objects & Symbols
  5. Q37. What is the difference between own properties and inherited properties?
JavaScriptObjects & Symbols

Q37. What is the difference between own properties and inherited properties?

নিজের প্রপার্টি বনাম prototype থেকে পাওয়া প্রপার্টি — চেনার উপায় ও গুরুত্ব।

Own property হলো যেটা object-এর উপর নিজে থেকেই আছে। আর inherited property হলো যেটা object-এর নিজের নয়, বরং prototype chain ধরে উপরের কোনো object থেকে এসেছে।

নিজের বনাম inheritedjavascript
javascript
const animal = {
  sound: "গর্জন",
};

const dog = Object.create(animal);
dog.name = "কুকু";

// নিজের প্রপার্টি
console.log(dog.hasOwnProperty("name"));  // true
console.log(dog.hasOwnProperty("sound")); // false — inherited

// inherited property ও পড়া যায়
console.log(dog.sound);            // "গর্জন"
console.log(dog.hasOwn("sound"));  // false

ধাপে ধাপে — dog-এর prototype হলো animal, তাই sound prototype chain ধরে পাওয়া যায়। কিন্তু name সরাসরি dog-এ বসানো, তাই সেটা own property। পড়ার সময় দুটোই কাজ করে, শুধু hasOwnProperty দিয়ে আলাদা করা যায়।

in অপারেটর আর hasOwnProperty এক জিনিস নয় — in চেক করে prototype chain-ও, আর hasOwnProperty শুধু নিজেরটা দেখে।

in বনাম hasOwnPropertyjavascript
javascript
console.log("sound" in dog);  // true  — chain-এ আছে
console.log(dog.hasOwnProperty("sound")); // false

console.log("fly" in dog);    // false
console.log(dog.hasOwnProperty("fly"));  // false

প্রোটোটাইপের সাধারণ method-গুলোও inherited — তাই dog.toString() কাজ করে, অথচ dog-এর নিজের toString নেই।

সাধারণ method ও inheritedjavascript
javascript
console.log(dog.toString());                 // কাজ করে
console.log(dog.hasOwnProperty("toString"));  // false
console.log(Object.getPrototypeOf(dog) === animal); // true
পরীক্ষার তিন উপায়javascript
javascript
// তিন ধরনের method
console.log("name" in dog);                    // true
console.log(Object.hasOwn(dog, "name"));      // true
console.log(typeof dog.toString);              // "function"
console.log(dog.hasOwnProperty("toString"));   // false

এই পার্থক্য বাস্তবে দরকার হয় লুপ চালানোর সময়। for...in inherited property-ও ঘুরে দেখায়, তাই নিজের প্রপার্টি ছাঁকতে hasOwnProperty দিয়ে চেক করতে হয়।

for...in-এ চাপjavascript
javascript
const parent = { shared: true };
const child = Object.create(parent);
child.own = true;

for (const key in child) {
  console.log(key); // "own", "shared" — দুটোই আসে
}

for (const key in child) {
  if (child.hasOwnProperty(key)) {
    console.log(key); // শুধু "own"
  }
}
নিরাপদ চেকjavascript
javascript
// আরও নিরাপদ — hasOwn ও safe
console.log(Object.hasOwn(child, "shared"));  // false
console.log(Object.prototype.hasOwnProperty.call(child, "shared")); // false
বিষয়Own propertyInherited property
কোথায়object-এর নিজের উপরprototype-এ
hasOwnPropertytruefalse
for...in-এ আসেহ্যাঁহ্যাঁ
JSON.stringify-এথাকেথাকে না
মজার তথ্য

hasOwnProperty নিজেই একটি inherited method, তাই object-এ hasOwnProperty নামে কোনো প্রপার্টি থাকলে সরাসরি কল করলে error হতে পারে। আধুনিক Object.hasOwn(obj, key) ব্যবহার করলে এই ঝামেলা থাকে না।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
Objects & Symbols বিভাগের আরও প্রশ্নJavaScript প্রশ্ন/উত্তর
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com