OOP-de JavaScript-de geçirilen usulyna çagyryş

Geçirilende, waris ata-klasynyň geçirilen usulyna ýol tapmaýar. Emma, oňa ýene-de ýol tapmak bolýar. Bu, ata-klasyny görkezýän super açar sözi arkaly edilýär.

Ata-usula ýol gerek bolup bilýän mysala göz aýlanyň. Bizde şeýle ata-klas bolsun:

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

Waris-klasda ata-usuly geçirýändigimizi göz öňünde tutalyň:

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

Geçirilen usulda, şert ýerine ýetirilende, esasan ata-usulyň kody ýerine ýetirilýändigini görüp bolýar. Bu ýersiz kod gaýtalanmasynyň peýda bolýandygyny görkezýär.

Eger-de ata-usulyny çaklasak, ondan gaçaryp bolar. Geliň, muny edeliň:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      super.setName(name); // ata-usuly
    } else {
      throw new Error('student name error');
    }
  }
}
Задание 1

Aşakdaky kod berlen:

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 klasynda ýaş setterini düzediň, ony ýönekeýleşdiriň we ata-usulynyň orisinal versiýasyny ulanyň.