Oproep van 'n oorheersde metode in OOP in JavaScript

Met oorheersing verloor die nakoming toegang tot die oorheersde metode van die ouer. Tog kan dit steeds verkry word. Dit word gedoen met die sleutelwoord super, wat na die ouerklas verwys.

Laat ons kyk na 'n voorbeeld wanneer ons toegang tot die ouermetode nodig mag hê. Gestel ons het die volgende ouerklas:

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

Gestel ons het die metode van die ouer in die kindklas oorheers:

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

Daar kan opgelet word dat in die oorheersde metode, wanneer die voorwaarde nagekom word, in werklikheid die kode van die ouermetode uitgevoer word. Dit lei tot onnodige kode duplisering.

Dit kan verwyder word deur die metode van die ouer te roep. Laat ons dit doen:

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

Gegee die volgende kode:

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

In die klas Employee, regstel en vereenvoudig die ouderdom steller deur die oorspronklike metode van die ouer te gebruik.