V tomto tutoriáli sa pomocou príkladov dozviete o metódach getterov a setterov JavaScriptu.
V JavaScripte existujú dva druhy vlastností objektov:
- Vlastnosti údajov
- Vlastnosti prístupového objektu
Dátové vlastníctvo
Tu je príklad vlastnosti údajov, ktorú sme používali v predchádzajúcich tutoriáloch.
const student = ( // data property firstName: 'Monica'; );
Majetok prístupu
V JavaScripte sú vlastnosti prístupového modulu metódy, ktoré získavajú alebo nastavujú hodnotu objektu. Na to používame tieto dve kľúčové slová:
get
- definovať getrovú metódu na získanie hodnoty vlastnostiset
- definovať metódu setteru na nastavenie hodnoty vlastnosti
Getter jazyka JavaScript
V JavaScripte sa na prístup k vlastnostiam objektu používajú metódy getra. Napríklad,
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
Vo vyššie uvedenom programe getName()
je vytvorená metóda getra na prístup k vlastnosti objektu.
get getName() ( return this.firstName; )
Poznámka: Na vytvorenie metódy getter get
sa použije kľúčové slovo.
A tiež pri prístupe k hodnote pristupujeme k hodnote ako k vlastnosti.
student.getName;
Pri pokuse o prístup k hodnote ako metóde sa vyskytne chyba.
console.log(student.getName()); // error
Nastavovač JavaScriptu
V JavaScripte sa na zmenu hodnôt objektu používajú metódy settera. Napríklad,
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
Vo vyššie uvedenom príklade sa na zmenu hodnoty objektu používa metóda setter.
set changeName(newName) ( this.firstName = newName; )
Poznámka: Na vytvorenie metódy setter set
sa používa kľúčové slovo.
Ako je uvedené v predchádzajúcom programe, hodnota firstName
je Monica
.
Potom sa hodnota zmení na Sarah
.
student.chageName = 'Sarah';
Poznámka : Nastavovač musí mať presne jeden formálny parameter.
JavaScript Object.defineProperty ()
V JavaScripte môžete tiež použiť Object.defineProperty()
metódu na pridanie getrov a setterov. Napríklad,
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
Vo vyššie uvedenom príklade Object.defineProperty()
sa používa na prístup a zmenu vlastností objektu.
Syntax pre použitie Object.defineProperty()
je:
Object.defineProperty(obj, prop, descriptor)
Object.defineProperty()
Metóda má tri argumenty.
- Prvý argument je objectName.
- Druhým argumentom je názov nehnuteľnosti.
- Tretím argumentom je objekt, ktorý popisuje túto vlastnosť.