I denne vejledning lærer du om JavaScript-getter- og settermetoder ved hjælp af eksempler.
I JavaScript er der to slags objektegenskaber:
- Dataegenskaber
- Accessor egenskaber
Dataejendom
Her er et eksempel på dataegenskaber, som vi har brugt i de foregående tutorials.
const student = ( // data property firstName: 'Monica'; );
Accessor ejendom
I JavaScript er accessoregenskaber metoder, der henter eller indstiller værdien af et objekt. Til det bruger vi disse to nøgleord:
get
- at definere en getter-metode for at få ejendomsværdienset
- at definere en settermetode til at indstille ejendomsværdien
JavaScript Getter
I JavaScript bruges getter-metoder til at få adgang til et objekts egenskaber. For eksempel,
const student = ( // data property firstName: 'Monica', // accessor property(getter) get getName() ( return this.firstName; ) ); // accessing data property console.log(student.firstName); // Monica // accessing getter methods console.log(student.getName); // Monica // trying to access as a method console.log(student.getName()); // error
I ovenstående program getName()
oprettes en getter-metode for at få adgang til et objekts egenskab.
get getName() ( return this.firstName; )
Bemærk: For at oprette en getter-metode get
bruges nøgleordet.
Og også når vi får adgang til værdien, får vi adgang til værdien som en ejendom.
student.getName;
Når du prøver at få adgang til værdien som en metode, opstår der en fejl.
console.log(student.getName()); // error
JavaScript Setter
I JavaScript bruges settermetoder til at ændre et objekts værdier. For eksempel,
const student = ( firstName: 'Monica', //accessor property(setter) set changeName(newName) ( this.firstName = newName; ) ); console.log(student.firstName); // Monica // change(set) object property using a setter student.changeName = 'Sarah'; console.log(student.firstName); // Sarah
I ovenstående eksempel bruges setter-metoden til at ændre værdien af et objekt.
set changeName(newName) ( this.firstName = newName; )
Bemærk: For at oprette en settermetode set
bruges nøgleordet.
Som vist i det ovennævnte program, værdien af firstName
er Monica
.
Derefter ændres værdien til Sarah
.
student.chageName = 'Sarah';
Bemærk : Setter skal have nøjagtigt en formel parameter.
JavaScript Object.defineProperty ()
I JavaScript kan du også bruge Object.defineProperty()
metoden til at tilføje getters og setters. For eksempel,
const student = ( firstName: 'Monica' ) // getting property Object.defineProperty(student, "getName", ( get : function () ( return this.firstName; ) )); // setting property Object.defineProperty(student, "changeName", ( set : function (value) ( this.firstName = value; ) )); console.log(student.firstName); // Monica // changing the property value student.changeName = 'Sarah'; console.log(student.firstName); // Sarah
I ovenstående eksempel Object.defineProperty()
bruges til at få adgang til og ændre et objekts egenskab.
Syntaksen til brug Object.defineProperty()
er:
Object.defineProperty(obj, prop, descriptor)
Den Object.defineProperty()
metode har tre argumenter.
- Det første argument er objektnavnet.
- Det andet argument er navnet på ejendommen.
- Det tredje argument er et objekt, der beskriver ejendommen.