JavaScript-klassarv

I den här handledningen lär du dig om JavaScript-arv med hjälp av exempel.

Klassarv

Med arv kan du definiera en klass som tar all funktionalitet från en överordnad klass och låter dig lägga till mer.

Med hjälp av klassärv kan en klass ärva alla metoder och egenskaper för en annan klass.

Arv är en användbar funktion som möjliggör återanvändbar kod.

För att använda klassärv använder du extendsnyckelordet. Till exempel,

 // 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 exemplet ovan Studentärver klassen alla klassens metoder och egenskaper Person. Därför kommer Studentklassen nu att ha nameegenskapen och greet()metoden.

Sedan öppnade vi greet()metoden för Studentklass genom att skapa ett student1objekt.

JavaScript super () nyckelord

Det supernyckelord som används inuti ett barn klass betecknar dess moderklass. Till exempel,

 // 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();

Här refererar superinuti Studentklassen till Personklassen. Följaktligen, när konstruktören av Studentklassen kallas, kallar den också konstruktören för Personklassen som tilldelar en namnegenskap till den.

Åsidosättande metod eller egendom

Om en underordnad klass har samma metod eller egendomsnamn som för föräldraklassen använder den underordnade klassens metod och egendom. Detta koncept kallas metodöverstyrning. Till exempel,

 // 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 student Jack. yrke: Student

Här finns occupationegenskapen och greet()metoden i föräldraklassen Personoch Studentunderklassen. Därför Studentåsidosätter klassen occupationegenskapen och greet()metoden.

Användning av arv

  • Eftersom en barnklass kan ärva alla funktionerna i föräldraklassen, möjliggör kodåteranvändning.
  • När en funktion har utvecklats kan du helt enkelt ärva den. Inget behov av att uppfinna hjulet på nytt. Detta möjliggör renare kod och lättare att underhålla.
  • Eftersom du också kan lägga till dina egna funktioner i barnklassen kan du bara ärva de användbara funktionerna och definiera andra nödvändiga funktioner.

Intressanta artiklar...