⊗jsOpIhCOM 32 of 60 menu

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:

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

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

class 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:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // forælderens metode } else { throw new Error('student name error'); } } }

Følgende kode er givet:

class 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.

uzchykaptcs