I denne veiledningen vil du lære om JavaScript-arv ved hjelp av eksempler.
Klassearv
Med arv kan du definere en klasse som tar all funksjonaliteten fra en overordnet klasse og lar deg legge til mer.
Ved å bruke klassearv kan en klasse arve alle metodene og egenskapene til en annen klasse.
Arv er en nyttig funksjon som tillater gjenbrukbar kode.
For å bruke klassearv, bruker du extends
nøkkelordet. For eksempel,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( ) let student1 = new Student('Jack'); student1.greet();
Produksjon
Hei Jack
I eksemplet ovenfor Student
arver klassen alle metodene og egenskapene til Person
klassen. Derfor vil Student
klassen nå ha name
egenskapen og greet()
metoden.
Deretter åpnes vi den greet()
metoden for Student
klassen ved å opprette et student1
objekt.
JavaScript super () nøkkelord
Den super
nøkkelordet brukes inne et barn klasse betegner sin overordnede klassen. For eksempel,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( console.log("Creating student class"); // call the super class constructor and pass in the name parameter super(name); ) ) let student1 = new Student('Jack'); student1.greet();
Her super
inne Student
refererer klasse til Person
klasse. Derfor, når konstruktøren av Student
klassen kalles, kaller den også konstruktøren av Person
klassen som tildeler en navnegenskap til den.
Overstyrende metode eller eiendom
Hvis en underordnet klasse har samme metode eller eiendomsnavn som for overordnede klasse, vil den bruke metoden og egenskapen til underordnede klasse. Dette konseptet kalles metodeoverstyring. For eksempel,
// parent class class Person ( constructor(name) ( this.name = name; this.occupation = "unemployed"; ) greet() ( console.log(`Hello $(this.name).`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( // call the super class constructor and pass in the name parameter super(name); // Overriding an occupation property this.occupation = 'Student'; ) // overriding Person's method greet() ( console.log(`Hello student $(this.name).`); console.log('occupation: ' + this.occupation); ) ) let p = new Student('Jack'); p.greet();
Produksjon
Hei student Jack. yrke: Student
Her er occupation
eiendommen og greet()
metoden til stede i foreldreklassen Person
og Student
barneklassen. Derfor Student
overstyrer klassen occupation
eiendommen og greet()
metoden.
Bruk av arv
- Siden en underordnet klasse kan arve alle funksjonene i foreldrenes klasse, tillater dette gjenbrukbar kode.
- Når en funksjonalitet er utviklet, kan du bare arve den. Ingen grunn til å finne opp hjulet på nytt. Dette gir renere kode og er lettere å vedlikeholde.
- Siden du også kan legge til dine egne funksjoner i barneklassen, kan du bare arve de nyttige funksjonene og definere andre nødvendige funksjoner.