Arvtyper i JavaScript

Arvtyper i JavaScript
I JavaScript, Arv er en mekanisme som tillater et objekt å arve alle metodene og egenskapene til dens foreldre- eller basisobjekt. Det regnes også som en avgjørende komponent i OOP (objektorientert programmering).

Ideen bak implementering av arv i JavaScript er å legge til nye objekter som er avledet fra eksisterende objekter. Når det nyopprettede objektet blir et barn eller avledet objekt av en foreldreklasse, kan det arve alle metodene og egenskapene.

Denne oppskrivningen vil diskutere Typer av Arv i JavaScript. Så la oss starte!

Arvtyper i JavaScript

JavaScript støtter følgende typer arv:

  • Prototypisk arv
  • Pseudoklassisk arv
  • Funksjonell arv

Vi vil diskutere hver av de nevnte arvetypene i følgende seksjoner.

Prototypisk arv i JavaScript

Prototypal Arv”Lar deg få tilgang til egenskaper og metoder for et foreldreobjekt. I denne typen arv har et nyopprettet objekt lov til å arve egenskapene og metoden til et eksisterende objekt. Typisk, "Gjenstand.getPrototypeOf ()”Og“Gjenstand.setprototypeOf ()”Kan brukes til å få og sette et objekts prototype; Imidlertid standardiserer ES6 "__proto__”Accessor Property som kan brukes til lignende formål.

Syntaks av prototypisk arv i JavaScript

ChildObject.__proto__ = ParentObject

Her “ChildObject”Representerer det nyopprettede objektet som arver egenskapene og metodene til“ParentObject”.

Eksempel: Hvordan implementere prototypisk arv i JavaScript

Først av alt vil vi lage to objekter som heter “Sykkel”Og“Venom”Og legg til en“farge”Eiendom for“Sykkel”Objekt og et“Navn”Eiendom for“Venom”Objekt:

La sykkel =
Farge: "Blå",
;
La Venom =
Navn: "Venom",
;

Ved bruk av "__proto__”Eiendom til“Venom”Objekt, vil vi arve egenskapene til“Sykkel”Objekt:

Venom.__proto__ = sykkel;

Til slutt vil vi vise "egen”(Venom.navn) og “arvet”(Venom.farge) egenskapverdier av “Venom”Objekt:

konsoll.Logg ("Dette er et" + gift.farge + "" + gift.Navn);

Pseudoklassisk arv i JavaScript

Ideen om å implementere “Pseudoklassisk Arv" er å lage en “arvet”Funksjon som hjelper til med å knytte barneklassen til foreldreklassen.

For dette formålet bruker den pseudoklassiske arven:

  • En "konstruktør ()”Funksjon
  • ny”Operatør for å lage forekomster
  • En "prototype”Eiendom som etablerer arvekjeden og blir tildelt konstruktørfunksjonen slik at alle forekomster arver den spesifiserte eiendommen.

Nå, sjekk ut det undergitte eksemplet for å forstå den pseudoklassiske arven tydelig.

Eksempel: Hvordan implementere pseudoklassisk arv i JavaScript

Vi vil definere en konstruktørfunksjon som heter “Sykkel ()”:

funksjonssykkel ()
dette.name = 'sykkel';

Deretter vil vi lage en "info ()”Funksjon som vil bli arvet av barneobjektene til“Sykkel”:

Sykkel.prototype.info = funksjon ()
konsoll.logg ('dette er en' + dette.Navn );
;

I vårt program vil vi erklære et annet objekt som heter “Venom,”Og bruk“Sykkel.anrop()”Metode for å påkalle sykkelkonstruktøren ():

funksjonsgif ()
Sykkel.ring (dette);
dette.Navn = 'Venom';

Deretter vil vi bruke "prototype”Eiendom for å implementere den pseudoklassiske arven mellom“Venom”Objekt og“Sykkel”Objekt:

Venom.prototype = objekt.Lag (sykkel.prototype);
Venom.prototype.konstruktør = sykkel;

I det siste trinnet "ny"Operatøren brukes til å lage de to forekomstene,"Venom”Og“sykkel“:

var gift = nytt gift ();
var sykkel = ny sykkel ();

Etter å ha gjort det, “info () ” Funksjonen påberopes for begge tilfeller:

Venom.info ();
sykkel.info ();

Som du ser fra den undergitte produksjonen, implementeres den pseudoklassiske arven, og forekomsten "Venom”Arvet og utført“info ()”Funksjon vellykket:

Funksjonell arv i JavaScript

Mekanismen for å arve egenskaper ved å bruke en forsterkende funksjon (funksjon som har generisk funksjonalitet) til en objektforekomst er kjent som “Funksjonell arv”. Den definerte forsterkningsfunksjonen bruker dynamisk objektutvidelse for å legge til flere egenskaper og metoder til en objektforekomst. Du kan også bruke "stengningsomfang”For å holde noen data private.

Eksempel: Hvordan implementere funksjonell arv i JavaScript

I dette eksemplet vil vi lage en “Sykkel”Objekt som har et indre objekt som heter“x”:

funksjonssykkel (data)
var x = ;
x.Navn = data.Navn;
returner x;

Deretter vil vi opprette et barneobjekt som heter “Venom”Som etablerer arven med“Sykkel”Klasse. Dette barneobjektet vil omfatte en forsterkende funksjon “info”Som kan ha tilgang til“Navn”Eiendom til“x”Objekt:

funksjonsgif (data)
var x = sykkel (data);
x.info = funksjon ()
Returner "dette er en" + x.Navn + "Bike";
;
returner x;

For å implementere den funksjonelle arven, vil vi lage “Venom”Som barn forekomst og passerer verdien av“Navn”Eiendom som“data”Argument:

var gift = gift (navn: "gift");

Det gitte “konsoll.Logg()”Metode vil hente verdien av“x.Navn”Eiendom fra foreldrene”Sykkel”Objekt og skriv den ut på konsollen:

konsoll.Logg (Venom.info ());

Produksjon

Det handlet om arveringstyper i JavaScript. Du kan utforske dem ytterligere i henhold til dine preferanser.

Konklusjon

Prototypal Arv, pseudoklassisk arv, og Funksjonell Arv er forskjellig Typer av Arv I JavaScript. En prototypisk type arv implementeres ved bruk av “__proto__”Eiendom, mens i funksjonell arv, en forsterke Funksjon er definert som får tilgang til egenskapene til foreldreklassen. Dessuten Pseudoklassisk Arv bruker en konstruktør () funksjon, “ny”Operatør, og prototype Eiendom for å legge inn arv mellom to objekter. Denne oppskrivningen diskuterte forskjellige typer arv i JavaScript.