Denne oppskrivningen vil diskutere klassearv i JavaScript. Vi vil også forklare Skyggemetoder og arver statiske metoder Bruke klassearven i JavaScript. Videre vil hver av de spesifiserte seksjonene bli demonstrert ved hjelp av eksempler. Så la oss starte!
Klassearv i JavaScript
Mekanismen der en klasse arver en annen klasses metoder og egenskaper er kjent som Klasse arv. “Utgangspunkt" eller "Foreldre”Klasse er den hvis metoder og egenskaper er arvet, mens“Avledet" eller "Barn”Klasse arver funksjonaliteten til foreldreklassen:
“strekker”Søkeord brukes til å etablere klassearven mellom foreldre og barneklasse, og“super”Nøkkelord brukes for å få tilgang til metodene og egenskapene til foreldreklassen.
Eksempel: Klassearv i JavaScript
I det undergitte eksemplet vil vi definere to klasser: Person og Ansatt, og skape klassearven mellom dem ved å bruke “super”Og“strekker”Nøkkelord.
Først av alt vil vi definere en foreldre- eller baseklasse som heter “Person”Å ha en konstruktør og en vistame () -metode:
klassepersonI neste trinn vil vi lage barneklassen som heter “Ansatt”Som vil ha en konstruktør og en“DisplayStatus ()”Metode. Å etablere et klassearveforhold med “Person”Klasse, du må bruke“strekker”Søkeord og spesifiser navnet på foreldreklassen, som er“Person”I vårt tilfelle. Etter å ha gjort det, “Ansatt”Klasse vil arve“Person”Klassens metoder og egenskaper.
Også i "Ansatt”Klassekonstruktør, vi vil påkalle”super()”Å ringe konstruktøren til“Person”Klasse mens du passerer“Navn”Argument:
klasseansatt utvider personNå vil vi lage en “ansatt”Objekt av“Ansatt”Klasse og vil passere“Jack”Som navn argumenter i konstruktøren:
La ansatt = ny ansatt ('Jack');Den skapte “ansatt”Objekt arvet alle metoder og egenskaper for“Person”Klasse. Nå vil vi påkalle "vistame ()”Metode for“Person”Klasse med det:
ansatt.vistame ();Til slutt vil vi kalle “DisplayStatus ()”Metode for“Ansatt”Klasseobjekt:
ansatt.displayStatus ();Ta en titt på det undergitte bildet av den medfølgende koden og utdataene:
Som super () initialiserer "dette”Objekt, du må påkalle det først før du får tilgang til det. Imidlertid, hvis du prøver å få tilgang til "dette”Før du utfører Super (), vil det gi deg en feil.
For eksempel for å initialisere "alder”Eiendom til“Ansatt”Klasse i konstruktøren, vil vi kalle“super()”Først og får tilgang til“dette”Objekt:
klasseansatt utvider personNå, på tidspunktet for å lage "Ansatt1”Objekt av“Ansatt”Klasse, vi vil passere“Jack" som Navn og “29" som alder argument til konstruktøren:
La ansatt1 = ny ansatt ('Jack', 29);Deretter, etter initialisering, vil vi påkalle "Getage ()”Metode for vår ansattklasse for å se alderseiendomsverdien:
konsoll.Logg (ansatt1.getage ());Sjekk ut utdataene fra det ovennevnte eksemplet:
Skyggemetoder ved hjelp av klassearv i JavaScript
Metoder med samme navn kan defineres i både foreldre- og barneklasser. I en slik situasjon, når du påkaller metoden til et barneklasseobjekt, vil den skygge metoden som er til stede i foreldreklassen.
For eksempel det undergitte "Student”Klasse er barneklassen for“Person”Og omdefinerer“vistame ()”Metode:
Klassestudent utvider personenNå, “vistame ()”Metode eksisterer i barneklassen og også i foreldreklassen. Så når du ringer til “vistame ()" med "Student”Klasseobjekt, vil det påkalle den viste navn () -metoden definert i barneklassen:
La student1 = ny student ();Her er eksempelkoden med utdataene:
Hvis du vil påkalle foreldreklassemetoden med samme navn, i barneklassen, må du skrive ut “super.MethodName (argumenter)”. For eksempel vil vi kalle "vistame ()”Metode for“Person”(Foreldre) klasse ved å legge til linjen“super.vistame ()”I vår barneklasse vistame () -metode:
vistame ()Nå, når barneklasseobjektet påkaller “vistame ()”, Det vil gå gjennom kroppen til Child Class vistame () -metoden, og ring deretter foreldreklassen vist () -metoden () metoden (). Etter å ha fullført utførelsen av foreldreklassen vistame () -metoden, vil kontrollen bli flyttet tilbake til vistam () -metoden for barneklassen:
La student1 = ny student ();I følgende bilde kan du se utgangen fra "vistame ()”Metode:
Arver statiske medlemmer som bruker klassearv i JavaScript
Barneklassen kan også arve de statiske metodene og egenskapene til foreldreklassen. La oss hjelpe deg med å forstå dette konseptet ved å demonstrere et eksempel.
I det følgende eksemplet vil vi definere en statisk ”Hei Verden()”Metode i samme”Person”Foreldreklasse som ganske enkelt vil sende ut“Hei Verden”Streng når du kaller det:
klassepersonI neste trinn vil vi lage “Ansatt”Som barneklasse av“Person”, Så det kan arve metoden og egenskapene til foreldreklassen, inkludert“Hei Verden()”Statisk metode:
klasseansatt utvider personDeretter vil vi påkalle HelloWorld () statisk metode gjennom “Ansatt”Klasse:
Ansatt.Hei Verden();Den ansatte.HelloWorld () -metoden vil bli utført samme som personen.HelloWorld () Metode:
Konklusjon:
Du kan bruke strekker nøkkelord for å lage en klassearv i JavaScript og super nøkkelord for å referere til foreldreklassen. Med klassearvemekanismen i JavaScript kan barneklassen få tilgang til foreldreklassens metoder og egenskaper. Denne oppskrivningen diskuterte klassearv i JavaScript. Vi har også forklart skyggemetoder og arver statiske metoder ved bruk av klassen i JavaScript. Videre er hver av de spesifiserte seksjonene demonstrert ved hjelp av eksempler.