Kald af overstyret metode i OOP i JavaScript

Ved overstyring mister afkommet adgang til den overstyrede metode fra forælderen. Det er dog stadig muligt at få adgang til den. Dette gøres ved hjælp af nøgleordet super, som refererer til forælderklassen.

Lad os se på et eksempel, hvor vi muligvis har brug for adgang til forælderens metode. Antag, at vi har følgende forælderklasse:

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

Antag, at vi i afkomklassen har overstyret forælderens metode:

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

Det kan bemærkes, at i den overstyrede metode, når betingelsen er opfyldt, udføres essentielt koden fra forælderens metode. Dette resulterer i unødvendig kodeduplikering.

Dette kan undgås ved at kalde forælderens metode. Lad os gøre dette:

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

Følgende kode er givet:

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');
    }
  }
}

I klassen Employee skal du rette og forenkle setteren for alder ved at bruge forælderens oprindelige metode.