I denne vejledning lærer du om JavaScript-klassearv ved hjælp af eksempler.
Klassearv
Arv giver dig mulighed for at definere en klasse, der tager al funktionaliteten fra en overordnet klasse og giver dig mulighed for at tilføje mere.
Ved hjælp af klassearv kan en klasse arve alle metoderne og egenskaberne i en anden klasse.
Arv er en nyttig funktion, der tillader genbrug af koder.
For at bruge klassearvering bruger du extends
nøgleordet. 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();
Produktion
Hej Jack
I ovenstående eksempel Student
arver klassen alle klassens metoder og egenskaber Person
. Derfor vil Student
klassen nu have name
egenskaben og greet()
metoden.
Derefter fik vi adgang greet()
til Student
klassemetoden ved at oprette et student1
objekt.
JavaScript super () nøgleord
Den super
nøgleord bruges inde et barn klasse betegner dets moderselskab klasse. 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 refererer super
inde Student
klasse til Person
klassen. Derfor, når konstruktøren af Student
klassen kaldes, kalder den også konstruktøren for Person
klassen, som tildeler den en navneegenskab.
Tilsidesættelse af metode eller ejendom
Hvis en underordnet klasse har den samme metode eller ejendomsnavnet som den overordnede klasse, bruger den metoden og egenskaben for underordnet klasse. Dette koncept kaldes 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();
Produktion
Hej studerende Jack. erhverv: studerende
Her er occupation
egenskaben og greet()
metoden til stede i overordnet Person
klasse og underordnet Student
klasse. Derfor er Student
klassen tilsidesætter occupation
egenskaben og greet()
fremgangsmåden.
Anvendelse af arv
- Da en underordnet klasse kan arve alle funktionerne i forældrenes klasse, tillader dette genanvendelighed af kode.
- Når en funktion er udviklet, kan du bare arve den. Ingen grund til at genopfinde hjulet. Dette giver mulighed for renere kode og lettere at vedligeholde.
- Da du også kan tilføje dine egne funktioner i underklassen, kan du kun arve de nyttige funktioner og definere andre nødvendige funktioner.