din ES2015, avem posibilitatea de a utiliza getters și setters pentru a defini proprietățile în obiectele noastre. În acest post vom înțelege cum funcționează.
Acest conținut publicat mai întâi pe newsletter-ul meu, săptămâna după publicarea buletinului informativ public pe blogul meu, dacă Vrei să fii primul care a citit Abonare
Înainte de citire Acest post vă recomandă să lectură:
- înțelegere acest lucru în JavaScript
- Înțelegerea tipurilor din JavaScript
- În acest moment, ar trebui să știți comportamentul și atributele de la „DIV>
Proprietățile obiectelor din JavaScript.
În acest moment trebuie clarificat faptul că obiectele au trei tipuri de proprietăți:
- Proprietăți de date: Proprietăți normale, care conțin date.
- Proprietăți accesorii: Proprietăți care modifică comportamentul standard al
]
și]
- _internal proprietăți: _ Proprietăți interne de limbă, cum ar fi
]
,]
sau]
printre altele.Care sunt getters și setters
o funcție care obține o valoare a unei proprietăți este numită Getter și una care stabilește valoarea unui a Proprietatea se numește Setter.
Această caracteristică a fost implementată în ES2015 și poate modifica funcționarea normală de stabilire sau obținere a valorii unei proprietăți, este cunoscută sub numele de proprietăți accesorii.
Operare
Uneori dorim valori bazate pe alte valori, pentru că accesorii de date sunt destul de utile.
Pentru a le crea că folosim cuvintele cheie obțineți și setați
const obj = { get prop() { return this.__prop__; }, set prop(value) { this.__prop__ = value * 2; },};obj.prop = 12;console.log(obj.prop); //24
Noi creăm un obiect, cu o singură proprietate, care are un getter și un setter. În acest fel, de fiecare dată când vom stabili o valoare pentru Prop, se va înmulți cu două.
Notă: Utilizați proporție per convenție, dar nu implică faptul că este o valoare specială, aceasta este o valoare normală.
O altă modalitate de a crea o proprietate a accesorului este în mod explicit utilizând obiecte.defineproperty
iv id = „5A39C39614”
Avantajul pe care îl avem În acest fel, este că putem seta atributele pe care vrem să le avem proprietatea.
caracteristici
un accesor de proprietate, are doar atributele configurabile și _Onumerabil, _ Dacă vă vedem atributele va vedea acest lucru.
Se recomandă definirea atât a setului și a getterului).
Dacă modul strict nu este utilizat și încercările de a modifica valoarea vor fi o eroare silențioasă. /p>
O altă caracteristică importantă este că, dacă este setat u NA cu același nume într-un domeniu superior al lanțului prototip, accesorul de proprietate, va fi proprietatea pe care o predomină.
Să vedem un ultim exemplu