Senior
გააზიარე super() ფუნქციის შესახებ და როდის იყენებ?
sobes.tech AI
პასუხი AI-სგან
super() ფუნქცია კლასებში გამოიყენება მშობლის კლასის კონსტრუქტორის ან მშობლის მეთოდების გამოძახებისთვის.
იგი გამოიყენება ორ ძირითად შემთხვევაში:
-
შვილობილი კლასის კონსტრუქტორში, რათა გამოიძახოს ძირითადი კლასის კონსტრუქტორი და სწორად დაიწყოს მემკვიდრეობით მიღებული თვისებები.
-
მშობლის მეთოდების გამოძახებისთვის, თუ საჭიროა ქცევის გაფართოება ან გადაწერილი, მაგრამ ამავდროულად შენარჩუნდეს ძირითადი კლასის ნაწილობრივი ლოგიკა.
მაგალითი:
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() არ გამოიძახება შვილობილი კლასის კონსტრუქტორში, შეცდომა მოხდება, რადგან ძირითადი კლასი არ არის ინიციალიზებული.