Getttere og settere i javascript -klasse

Getttere og settere i javascript -klasse

I en JavaScript -klasse brukes getters og settere for å få eller angi egenskapene verdier. “”Er nøkkelordet som brukes til å definere en getter Metode for å hente eiendomsverdien, mens "sett”Definerer en settermetode for å endre verdien av en spesifikk egenskap. Når vi ønsker å få tilgang til en egenskap til vårt JavaScript -objekt, brukes verdien som returneres med getter -metoden, og for å angi en eiendomsverdi blir settermetoden påkalt, og deretter passerer vi verdien som et argument for at vi ønsker å angi.

Denne oppskrivningen vil diskutere gettere og setters i JavaScript. Videre vil vi også demonstrere eksempler relatert til bruk av getter og setter definisjon i JavaScript -klassen. Så la oss starte!

Getttere og settere i javascript -klasse

I det undergitte eksemplet vil vi lage en “Ansatt”Klasse som har en konstruktør. Konstruktøren av “Ansatt”Klasse vil initialisere den ansatte”Navn”Til strengen ga som et argument:

Klassemyndighet
konstruktør (navn)
dette.Navn = navn;

Nå vil vi opprette et ansatteklassingsobjekt som heter “ansatt”Og legg til“Jack”Som navn:

La ansatt = ny ansatt ("Jack");

Etter å ha gjort det, kan vi få tilgang til “Navn”Eiendom til“ansatt”Objekt på følgende måte:

konsoll.Logg (ansatt.Navn);

Utgangen fra det ovennevnte programmet er vist nedenfor:

Noen ganger vil du kanskje ikke få tilgang til en eiendom direkte. Det er der getter- og setterparet kommer til stykket.

Eksempel 1: Getttere og settere i JavaScript -klassen

For å demonstrere bruken av getteren og setteren, vil vi for det første lage en "Ansatt”Klasse har en“Navn”Eiendom:

Klassemyndighet
konstruktør (navn)
dette.setName (navn);

I neste trinn vil vi definere en "getName ()”Metode som vil returnere verdien av ansatt”Navn”Eiendom:

getName ()
Returner dette.Navn;

En annen metode, som vi kommer til å legge til er “setName ()”. SetName () -metoden i vår ansattklasse har en “Nynavn" parameter. Denne metoden vil fjerne eventuelle hvitespeder fra verdien av "newname ” Og det vil også kaste et unntak hvis du ikke har skrevet inn noe navn:

setName (newName)
newName = newName.listverk();
if (newName === ")
kast et ansattes navn ';

dette.Navn = newName;

Som vi har kalt "setName ()”Metode i konstruktøren, så når vi vil lage en“Ansatt”Objekt,“Navn”Bestått som argumentet vil bli tatt av SetName () -metoden. Deretter vil konstruktøren flytte kontrollstrømmen til setName () -metoden, og den vil sette verdiene passert et argument som "Ansatt”Objektnavn:

La ansatt = ny ansatt ('Jack Smith');
konsoll.logg (ansatt);

Du kan også påkalle den opprettet "setName ()”Og“getName ()”Metoder på følgende måte:

ansatt.setName ('William Smith');
konsoll.Logg (ansatt.getName ());

De ovennevnte kodelinjene vil sette "William Smith”Som navnet på“ansatt”Objekt. Og så "getName ()”Metode vil gi deg beskjed om eiendomsverdien for ansattes navn:

I det oppgitte eksemplet fungerer SetName () og getName () -metoden som getter og setter .

Eksempel 2: Getttere og settere i JavaScript -klassen

For å definere gettere og settere i JavaScript -klassen, tilbyr ES6 også en spesifikk syntaks. For å vise deg hvordan du bruker det, vil vi flytte inn i vår ansattklasse:

Klassemyndighet
konstruktør (navn)
dette.Navn = navn;

Deretter vil vi definere getter -metoden ved å bruke nøkkelordet "”Som vil bli fulgt av metodenavnet. En annen ting som vi vil nevne her, er at "Navn”Eiendom til vår“Ansatt”Klasse vil bli endret til“_Navn”For å unngå konflikten med getteren og setteren:

getName ()
Returner dette._Navn;

For å definere en settermetode, må du legge til "setter”Nøkkelord før du spesifiserer metodens navn:

Sett navn (newName)
newName = newName.listverk();
if (newName === ")
Kast 'vennligst skriv inn et ansattes navn';

dette._name = newName;

Når du vil tilordne hvilken som helst verdi til "Navn”Eiendom til din“Ansatt”Klasseobjekt, JavaScript vil påkalle settermetoden”Navn()”:

ansatt.Navn = 'Paul Max';

Deretter vil vi kalle den out getter-metoden ved å bruke den undergitte syntaks:

La EmpName = ansatt.Navn;

Når JavaScript-tolk vil utføre de ovennevnte linjene, vil den sjekke at det eksisterer noen "Navn”Eiendom i“Ansatt”Klasse. Den vil videre søke etter enhver metode som binder “Navn”Eiendom hvis den ikke blir funnet. I vårt tilfelle vil tolken få tilgang til getter -metoden, og etter å ha utført den, vil den returnere verdien av "Navn”Eiendom:

I tilfelle, hvis du ikke har definert en settermetode i JavaScript -klassen din, vil du få en typeerror som vil oppgi at du ikke kan sette eiendommen “Navn" av "Ansatt”Objekt, som“Ansatt”Klasse har bare en getter -funksjon:

klasseansatt
konstruktør (navn)
dette.Navn = navn;

Få navn ()
Returner dette._Navn;

// ingen settermetode

La ansatt = ny ansatt ("Stephen Edward");
konsoll.Logg (ansatt.Navn);

Her vil vi prøve å endre navn på "ansatt”Objekt; Vi har imidlertid ikke lagt til noen settermetode i klassen vår:

ansatt.Navn = 'Paul Smith';
konsoll.Logg (ansatt.Navn);

Som du kan se, har vi opplevd en type feil mens vi prøver å angi navnegenskapsverdien:

Konklusjon

Ved hjelp av get og angi nøkkelord, kan du enkelt definere getter og setter -metodene i en JavaScript -klasse. Getter -metoden returnerer eiendomsverdien, mens i setter -metoden blir det gitt et argument til settermetoden, som tildeler den spesifikke verdien til egenskapen til Javascript -klassen objekt. Denne oppskrivningen diskuterte getters and setters in JavaScript. Videre demonstrerte vi også eksempler relatert til definisjon av getter og setter og bruk i JavaScript -klassen.