Sobes.tech
Senior

გააზიარე super() ფუნქციის შესახებ და როდის იყენებ?

sobes.tech AI

პასუხი AI-სგან

super() ფუნქცია კლასებში გამოიყენება მშობლის კლასის კონსტრუქტორის ან მშობლის მეთოდების გამოძახებისთვის.

იგი გამოიყენება ორ ძირითად შემთხვევაში:

  1. შვილობილი კლასის კონსტრუქტორში, რათა გამოიძახოს ძირითადი კლასის კონსტრუქტორი და სწორად დაიწყოს მემკვიდრეობით მიღებული თვისებები.

  2. მშობლის მეთოდების გამოძახებისთვის, თუ საჭიროა ქცევის გაფართოება ან გადაწერილი, მაგრამ ამავდროულად შენარჩუნდეს ძირითადი კლასის ნაწილობრივი ლოგიკა.

მაგალითი:

class Animal {
  constructor(name) {
    this.name = name;
  }
  speak() {
    console.log(`${this.name} ხმას გამოსცემს.`);
  }
}

class Dog extends Animal {
  constructor(name, breed) {
    super(name); // გამოძახება Animal-ის კონსტრუქტორის
    this.breed = breed;
  }
  speak() {
    super.speak(); // გამოძახება Animal-ის `speak` მეთოდიდან
    console.log(`${this.name} ყეფს.`);
  }
}

თუ super() არ გამოიძახება შვილობილი კლასის კონსტრუქტორში, შეცდომა მოხდება, რადგან ძირითადი კლასი არ არის ინიციალიზებული.