JavaScript-klasse arv

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 extendsnø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 Studentarver klassen alle klassens metoder og egenskaber Person. Derfor vil Studentklassen nu have nameegenskaben og greet()metoden.

Derefter fik vi adgang greet()til Studentklassemetoden ved at oprette et student1objekt.

JavaScript super () nøgleord

Den supernø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 superinde Studentklasse til Personklassen. Derfor, når konstruktøren af Studentklassen kaldes, kalder den også konstruktøren for Personklassen, 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 occupationegenskaben og greet()metoden til stede i overordnet Personklasse og underordnet Studentklasse. Derfor er Studentklassen tilsidesætter occupationegenskaben 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.

Interessante artikler...