Comprensione dei getter e dei setter in JavaScript

Da ES2015, abbiamo la possibilità di utilizzare Getter e Setter per definire proprietà nei nostri oggetti. In questo post capiremo come funzioneremo.

Questo contenuto ha pubblicato prima sulla mia newsletter, la settimana dopo aver pubblicato la newsletter pubblica sul mio blog, se Vuoi essere il primo a leggere ISCRIZIONE

Banner

Prima di leggere Questo post consiglio di leggere:

  • Comprensione di questo in JavaScript
  • Comprensione dei tipi in JavaScript
  • Comprensione degli oggetti in JavaScript

Pronta?

In questo momento dovresti conoscere il comportamento e gli attributi del Proprietà degli oggetti in JavaScript.

A questo punto dovrebbe essere chiarito che gli oggetti hanno tre tipi di proprietà:

  • Proprietà dei dati: Proprietà normali, che contengono dati.
  • Proprietà dell’accessor: Proprietà che cambiano il comportamento standard di ] e ]
  • _ Proprietà _internali: _ Proprietà della lingua interna, come ], ] o ]

tra gli altri.

quali sono i getter e i setter

una funzione che ottiene un valore di una proprietà è denominato Getter e uno che imposta il valore di a Proprietà Si chiama Setter.

Questa funzione è stata implementata in ES2015 e può modificare il normale funzionamento di stabilire o ottenere il valore di una proprietà, è noto come proprietà degli accessori.

Funzionamento

A volte vogliamo valori basati su altri valori, per questo gli accessori dei dati sono abbastanza utili.

Per crearli utilizziamo le parole chiave ottenere e impostare

const obj = { get prop() { return this.__prop__; }, set prop(value) { this.__prop__ = value * 2; },};obj.prop = 12;console.log(obj.prop); //24

Creiamo un oggetto, con una singola proprietà, che ha un getter e un setter. In questo modo ogni volta che impostiamo un valore per il Prop si moltiplicherà per due.

Nota: utilizzare Prop per convenzione, ma non implica che sia un valore speciale, questo è un valore normale.

Un altro modo per creare una proprietà di accessori è esplicitamente utilizzando Object.DefineProperty

const obj = {};Object.defineProperty(obj, //objeto target 'prop', //nombre propiedad { enumerable: true, configurable: true, get prop() { //getter return this.__prop__; }, set prop(value) { //setter this.__prop__ = value * 2; }, });obj.prop = 12;var atr = Object.getOwnPropertyDescriptor(obj, 'prop')console.log(atr); 

Il vantaggio che abbiamo in In questo modo, è che possiamo impostare gli attributi che vogliamo avere la proprietà.

Funzionalità

Un accessorio della proprietà, ha solo gli attributi configurabili e _onumerabili, _if vediamo i tuoi attributi noi vedrà questo.

Questo ci porta al valore non può essere sovrascritto se il setter della funzione non è utilizzato ( Si consiglia di definire sia Setter e Getter).

Se la modalità rigorosa non viene utilizzata e tenta di modificare il valore sarà un errore silenzioso.

Un’altra caratteristica importante è che, se è impostata NA proprietà con lo stesso nome in una portata superiore della catena del prototipo, l’accessorio della proprietà, sarà la proprietà che predomina.

Vediamo un ultimo esempio

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *