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(); // даъвати методи speak аз Animal
    console.log(`${this.name} хазон мекунад.`);
  }
}

Бе даъвати super() дар конструктори синфи фарзанд, хато ба амал меояд, зеро синфи асосӣ инициализатсия нашудааст.