Վերագրված մեթոդի կանչը OOP-ում JavaScript-ում

Վերագրելիս ժառանգը կորցնում է մուտքը ծնողի վերագրված մեթոդին: Սակայն, դրան հասնելը հնարավոր է: Դա արվում է օգտագործելով super բանալի բառը, որը ցույց է տալիս ծնողական դասը:

Դիտարկենք մի օրինակ, երբ մեզ կարող է անհրաժեշտ լինել մուտք ծնողական մեթոդին: Ենթադրենք ունենք հետևյալ ծնողական դասը:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this.name;
  }
}

Ենթադրենք՝ ժառանգ դասում մենք վերագրեցինք ծնողի մեթոդը:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('student name error');
    }
  }
}

Նկատելի է, որ վերագրված մեթոդում պայմանի կատարման դեպքում փաստորեն կատարվում է ծնողական մեթոդի կոդը: Ստացվում է կոդի ավելորդ կրկնօրինակ:

Դրանից կարելի է ազատվել, եթե կանչել ծնողի մեթոդը: Եկեք անենք դա:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      super.setName(name); // ծնողի մեթոդը
    } else {
      throw new Error('student name error');
    }
  }
}
Задание 1

Տրված է հետևյալ կոդը:

javascriptclass User {
  setAge(age) {
    if (age >= 0) {
      this.age = age;
    } else {
      throw new Error('need age more 0');
    }
  }
}
class Employee {
  setAge(age) {
    if (age <= 120) {
      if (age >= 0) {
        this.age = age;
      } else {
        throw new Error('need age more 0');
      }
    } else {
      throw new Error('need age less 120');
    }
  }
}

Employee դասում ուղղեք տարիքի սետթերը՝ օգտագործելով ծնողի օրիգինալ մեթոդը: