Thirrja e metodës së ripërcaktuar në OOP në JavaScript

Gjatë ripërcaktimit, pasardhësi humb qasjen në metodën e ripërcaktuar të prindit. Megjithatë, mund të merret qasja në të. Kjo bëhet duke përdorur fjalën kyçe super, e cila tregon te klasa prind.

Le të shohim një shembull kur mund të na duhet qasje në metodën prind. Le të themi se kemi klasën prind të mëposhtme:

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

Le të themi se në klasën-pasardhës ne kemi ripërcaktuar metodën e prindit:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('gabim në emrin e studentit');
    }
  }
}

Mund të vërehet se në metodën e ripërcaktuar gjatë plotësimit të kushtit në thelb ekzekutohet kodi i metodës prind. Rezulton një dublim i panevojshëm kodi.

Mund të shpëtohet prej tij, nëse thirret metoda e prindit. Le ta bëjmë këtë:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      super.setName(name); // metoda e prindit
    } else {
      throw new Error('gabim në emrin e studentit');
    }
  }
}
Задание 1

Jepet kodi i mëposhtëm:

javascriptclass User {
  setAge(age) {
    if (age >= 0) {
      this.age = age;
    } else {
      throw new Error('nevojitet mosha më shumë se 0');
    }
  }
}
class Employee {
  setAge(age) {
    if (age <= 120) {
      if (age >= 0) {
        this.age = age;
      } else {
        throw new Error('nevojitet mosha më shumë se 0');
      }
    } else {
      throw new Error('nevojitet mosha më pak se 120');
    }
  }
}

Në klasën Employee korrigjoni thjeshtoni vendosësin e moshës, duke përdorur metodën origjinale të prindit.