Share
Facebook
Twitter
LinkedIn
Whatsapp
Instagram
Messenger

জাভাস্ক্রিপ্ট স্ট্যাটিক মেথড - JavaScript Static Method


জাভাস্ক্রিপ্টে static method এমন একটি মেথড যা কোনো নির্দিষ্ট object বা instance-এর জন্য নয়, বরং সরাসরি class-এর সাথে যুক্ত থাকে। তাই static method ব্যবহার করতে সাধারণত class-এর নামের পরে . দিয়ে মেথডটি কল করা হয়।

Static method বিশেষভাবে utility function, helper operation, validation, calculation এবং factory method তৈরিতে কাজে লাগে। এই টিউটোরিয়ালে আমরা static method-এর ধারণা থেকে শুরু করে class, instance, static property, inheritance এবং বাস্তব প্রয়োগ পর্যন্ত ধাপে ধাপে দেখব।


১. Static Method কী?

একটি class-এর ভিতরে static keyword ব্যবহার করে static method তৈরি করা যায়। এই method-কে object তৈরি না করেই class-এর নাম ব্যবহার করে কল করা যায়।

উদাহরণ

class MyClass {
  static myStaticMethod() {
    console.log("This is a static method.");
  }
}

MyClass.myStaticMethod();

কোড এডিটর

এখানে myStaticMethod() একটি static method। তাই new MyClass() তৈরি করার প্রয়োজন নেই। সরাসরি MyClass.myStaticMethod() লিখে method-টি কল করা হয়েছে।


২. Static Method এবং Instance Method-এর পার্থক্য

Instance method সাধারণত object বা instance-এর data নিয়ে কাজ করে এবং সেটি object-এর মাধ্যমে কল করা হয়। অন্যদিকে static method class-এর সাথে যুক্ত থাকে এবং class-এর নাম দিয়ে কল করা হয়।

উদাহরণ

class Person {
  constructor(name) {
    this.name = name;
  }

  greet() {
    return "Hello " + this.name;
  }

  static info() {
    return "Person is a class for creating people.";
  }
}

const person1 = new Person("Rahim");
console.log(person1.greet());
console.log(Person.info());

কোড এডিটর

নোট - person1.info() দিয়ে static method কল করা যাবে না। Static method-এর জন্য class-এর নাম ব্যবহার করতে হবে।


৩. Utility Function হিসেবে Static Method

অনেক সময় এমন কিছু function দরকার হয় যেগুলোর জন্য কোনো object-এর ব্যক্তিগত data প্রয়োজন হয় না। এ ধরনের reusable কাজ class-এর static method হিসেবে রাখা যায়।

উদাহরণ

class MathUtils {
  static square(number) {
    return number * number;
  }

  static cube(number) {
    return number * number * number;
  }
}

console.log(MathUtils.square(5));
console.log(MathUtils.cube(3));

কোড এডিটর

এখানে square() এবং cube() কোনো নির্দিষ্ট object-এর data ব্যবহার করছে না। তাই এগুলো static utility method হিসেবে রাখা উপযুক্ত।


৪. Static Method থেকে অন্য Static Method কল

একই class-এর একটি static method থেকে অন্য static method-কে class-এর নাম ব্যবহার করে কল করা যায়। এটি বড় utility class-কে ছোট ছোট reusable method-এ ভাগ করতে সাহায্য করে।

উদাহরণ

class Calculator {
  static double(number) {
    return number * 2;
  }

  static tripleAndDouble(number) {
    const triple = number * 3;
    return Calculator.double(triple);
  }
}

console.log(Calculator.tripleAndDouble(5));

কোড এডিটর

প্রথমে 5 × 3 = 15, এরপর 15 × 2 = 30। এখানে একটি static method অন্য static method ব্যবহার করেছে।


৫. Static Method দিয়ে Factory Method তৈরি

Factory method এমন একটি static method যা class-এর নতুন instance তৈরি করে return করতে পারে। যখন object তৈরির নিয়মকে একটি নির্দিষ্ট method-এর মধ্যে রাখতে চাই, তখন এই pattern উপকারী।

উদাহরণ

class Person {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  static createAdult(name) {
    return new Person(name, 18);
  }
}

const person = Person.createAdult("Karim");
console.log(person.name);
console.log(person.age);

কোড এডিটর

এখানে createAdult() একটি static factory method। এটি নতুন Person object তৈরি করে return করছে।


৬. Static Property এবং Static Method

Static method-এর পাশাপাশি class-এর সাথে static property-ও রাখা যায়। Static property কোনো নির্দিষ্ট instance-এর নয়; এটি class-এর সাথে সম্পর্কিত।

উদাহরণ

class Company {
  static name = "WebsSchool";

  static getName() {
    return Company.name;
  }
}

console.log(Company.name);
console.log(Company.getName());

কোড এডিটর

নোট - Static property এবং static method ব্যবহার করার সময় class-এর নাম ব্যবহার করা হয়।


৭. Static Method-এর ভিতরে this

Static method-এর ভিতরে this instance-কে নির্দেশ করে না। static context-এ this সাধারণত সেই class-কে নির্দেশ করে। তাই class-এর static property বা অন্য static method-এ access করতে this ব্যবহার করা যায়।

উদাহরণ

class Counter {
  static count = 0;

  static increase() {
    this.count++;
    return this.count;
  }
}

console.log(Counter.increase());
console.log(Counter.increase());

কোড এডিটর

এখানে this.count দিয়ে Counter class-এর static property পরিবর্তন করা হয়েছে।


৮. Static Method এবং Inheritance

JavaScript class inheritance-এর ক্ষেত্রে static method subclass-এর কাছেও পাওয়া যেতে পারে। subclass চাইলে inherited static method ব্যবহার করতে পারে এবং প্রয়োজন হলে একই নামের static method দিয়ে override করতে পারে।

উদাহরণ

class Animal {
  static type() {
    return "Animal";
  }
}

class Dog extends Animal {}

console.log(Dog.type());

কোড এডিটর

এখানে Dog class, Animal class থেকে inherit করেছে। তাই Dog.type() কল করলেও inherited static method পাওয়া যাচ্ছে।


৯. Validation ও Helper Operation-এ Static Method

Static method validation বা helper operation-এর জন্যও ব্যবহার করা যায়। যেমন কোনো email-এর format পরীক্ষা করার মতো কাজের জন্য আলাদা object তৈরি করার প্রয়োজন নেই।

উদাহরণ

class Validator {
  static isEmail(value) {
    return value.includes("@");
  }

  static isPositive(number) {
    return number > 0;
  }
}

console.log(Validator.isEmail("user@example.com"));
console.log(Validator.isPositive(10));

কোড এডিটর

এ ধরনের helper method কোনো নির্দিষ্ট object-এর state-এর ওপর নির্ভর করে না। তাই static method হিসেবে রাখা কোডকে পরিষ্কার ও সহজে ব্যবহারযোগ্য করতে পারে।


১০. Static Method কখন ব্যবহার করবেন?

যখন কোনো operation-এর জন্য object-এর আলাদা data বা state প্রয়োজন হয় না এবং কাজটি class-এর সাধারণ নিয়ম বা utility হিসেবে ব্যবহার করা যায়, তখন static method উপযুক্ত হতে পারে।


১১. Static Method-এর গুরুত্বপূর্ণ বিষয়

Static method শেখার সময় নিচের বিষয়গুলো মনে রাখা গুরুত্বপূর্ণ।

নোট - Static method আর instance method-এর পার্থক্য পরিষ্কারভাবে বোঝা JavaScript OOP শেখার একটি গুরুত্বপূর্ণ ধাপ।