JavaScript-klassearv

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 extendsnø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 Studentarver klassen alle metodene og egenskapene til Personklassen. Derfor vil Studentklassen nå ha nameegenskapen og greet()metoden.

Deretter åpnes vi den greet()metoden for Studentklassen ved å opprette et student1objekt.

JavaScript super () nøkkelord

Den supernø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 superinne Studentrefererer klasse til Personklasse. Derfor, når konstruktøren av Studentklassen kalles, kaller den også konstruktøren av Personklassen 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 occupationeiendommen og greet()metoden til stede i foreldreklassen Personog Studentbarneklassen. Derfor Studentoverstyrer klassen occupationeiendommen 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.

Interessante artikler...