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. Q35. What are getters and setters in JavaScript?
JavaScriptObjects & Symbols

Q35. What are getters and setters in JavaScript?

প্রপার্টি পড়া ও লেখার আগে নিজের কাজ চালানোর উপায় — computed property সহ।

Getter হলো প্রপার্টি পড়ার সময় চালানো ফাংশন, আর setter হলো প্রপার্টিতে মান দেওয়ার সময় চালানো ফাংশন। ফলে আপনি একটা সাধারণ প্রপার্টির মতোই ব্যবহার করতে পারেন, কিন্তু ভিতরে লুকানো লজিক চলে।

শুধু getterjavascript
javascript
const user = {
  firstName: "Rahim",
  lastName: "Karim",

  get fullName() {
    return this.firstName + " " + this.lastName;
  },
};

console.log(user.fullName); // "Rahim Karim" — পড়লে getter চলে
console.log(user.firstName); // "Rahim" — সাধারণ প্রপার্টি

ধাপে ধাপে — user.fullName লিখলে JavaScript বুঝে নেয় এটা getter, তাই get fullName() ফাংশনটি চালায়। ফাংশনের ভিতরে this.firstName ও this.lastName পড়া হয় এবং জোড়া লাগানো হয়। ব্রাউজারে user.fullName লিখলেও () ছাড়াই getter চলে।

getter ও setter একসাথেjavascript
javascript
const temperature = {
  celsius: 20,

  get fahrenheit() {
    return this.celsius * 9 / 5 + 32;
  },

  set fahrenheit(value) {
    this.celsius = (value - 32) * 5 / 9;
  },
};

console.log(temperature.fahrenheit); // 68

temperature.fahrenheit = 212;
console.log(temperature.celsius);    // 100

ধাপে ধাপে — আগে celsius = 20 থেকে getter হিসাব করে 68 দেয়। তারপর temperature.fahrenheit = 212 লিখলে setter চলে, সেখানে value = 212 বসে সেটাকে সেলসিয়াসে বদলে celsius-এ রাখা হয়, ফলে (212 - 32) * 5 / 9 = 100।

class-এ এগুলো আরও পরিষ্কার লেখা যায়, আর সাধারণ প্রপার্টি থেকে get-এর নামে underscore ব্যবহার করার ঐতিহাসিক অভ্যাসটি আধুনিক JavaScript-এ প্রয়োজন নেই।

class-এ getterjavascript
javascript
class Rectangle {
  constructor(width, height) {
    this.width = width;
    this.height = height;
  }

  get area() {
    return this.width * this.height;
  }

  get isSquare() {
    return this.width === this.height;
  }
}
setter দিয়ে যাচাইjavascript
javascript
class User {
  #email; // সত্যিকারের private field

  constructor(name, email) {
    this.name = name;
    this.#email = email;
  }

  get email() {
    return this.#email;
  }

  set email(value) {
    if (!value.includes("@")) {
      throw new Error("সঠিক ইমেইল দিন");
    }
    this.#email = value;
  }
}

const user = new User("Rahim", "rahim@example.com");

user.email = "nope"; // Error: সঠিক ইমেইল দিন
defineProperty দিয়েjavascript
javascript
// class ছাড়া defineProperty দিয়ে
const user = {};

Object.defineProperty(user, "name", {
  get() {
    return "Rahim";
  },
  enumerable: true,
  configurable: true,
});

console.log(user.name);           // "Rahim"
console.log(Object.keys(user));  // ["name"]
বিষয়GetterSetter
কখন চলেপ্রপার্টি পড়লেপ্রপার্টিতে মান দিলে
ফেরত দেয়যেকোনো মানসাধারণত কিছু নয়
লেখার নিয়মশুধু getশুধু set
ব্যবহারহিসাব করা মানমান যাচাই বা রূপান্তর
সতর্কতা

getter ও setter খুব বেশি ব্যবহার করলে কোড সহজ হয়ে যায় — পড়তে চাইলে দেখা যায় কোথা থেকে মান আসে। কিন্তু প্রতিটা প্রপার্টির জন্য জোড়া getter-setter লিখলে কোড ভারী হয়ে যায়; সাধারণ প্রপার্টিই রাখুন, প্রয়োজন হলে ব্যবহার করুন।

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

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

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

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

mdanamolhasan1998@gmail.com