I en JavaScript -klasse brukes getters og settere for å få eller angi egenskapene verdier. “få”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:
KlassemyndighetNå 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:
KlassemyndighetI neste trinn vil vi definere en "getName ()”Metode som vil returnere verdien av ansatt”Navn”Eiendom:
getName ()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)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');Du kan også påkalle den opprettet "setName ()”Og“getName ()”Metoder på følgende måte:
ansatt.setName ('William Smith');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:
KlassemyndighetDeretter vil vi definere getter -metoden ved å bruke nøkkelordet "få”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 ()For å definere en settermetode, må du legge til "setter”Nøkkelord før du spesifiserer metodens navn:
Sett navn (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:
klasseansattHer 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';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.