Getter e setter in classe JavaScript

Getter e setter in classe JavaScript

In una classe JavaScript, i gettici e i setter vengono utilizzati per ottenere o impostare i valori delle proprietà. "Ottenere"È la parola chiave utilizzata per definire a getter Metodo per recuperare il valore della proprietà, mentre "impostato"Definisce un metodo setter per modificare il valore di una proprietà specifica. Quando vogliamo accedere a una proprietà del nostro oggetto JavaScript, viene utilizzato il valore restituito dal metodo getter e per impostare un valore della proprietà, viene invocato il metodo setter e quindi passiamo il valore come argomento che vogliamo impostare.

Questo articolo discuterà di gettatori e setter in JavaScript. Inoltre, dimostreremo anche esempi relativi all'utilizzo della definizione di Getter e Setter nella classe JavaScript. Quindi iniziamo!

Getter e setter in classe JavaScript

Nell'esempio seguente, creeremo un "Dipendente"Classe con un costruttore. Il costruttore del "Dipendente"La classe inizializzerà il dipendente"nome"Alla stringa passata come argomento:

ClassPloyee
costruttore (nome)
Questo.nome = nome;

Ora creeremo un oggetto di classe dei dipendenti chiamato "dipendente" e aggiungi "Jack"Come nome:

let dipendente = nuovo dipendente ("jack");

Dopo averlo fatto, possiamo accedere al "nome"Proprietà del"dipendente"Oggetto nel modo seguente:

console.registro (dipendente.nome);

L'output del programma di cui sopra è mostrato di seguito:

A volte, potresti non voler accedere direttamente a una proprietà. Ecco dove arrivano la coppia di getter e setter.

Esempio 1: getter e setter in classe JavaScript

Per dimostrare l'uso di Getter e Setter, in primo luogo, creeremo un "Dipendente"Classe con una"nome" proprietà:

ClassPloyee
costruttore (nome)
Questo.setname (nome);

Nel prossimo passaggio, definiremo un "getName ()"Metodo che restituirà il valore del dipendente"nome" proprietà:

getName ()
ritorno questo.nome;

Un altro metodo, che aggiungeremo è "imposta nome()". Il metodo setName () della nostra classe di dipendenti ha un "nuovo nome"Parametro. Questo metodo rimuoverà eventuali spazi bianchi dal valore del "nuovo nome" E lancerà anche un'eccezione se non hai inserito alcun nome:

setName (newName)
newName = newName.ordinare();
if (newName === ")
lanciare un nome di un dipendente ';

Questo.name = newName;

Come abbiamo chiamato il nostro "imposta nome()"Metodo nel costruttore, quindi ogni volta che creeremo un"Dipendente”Oggetto, l'altronome"Passato come argomento verrà preso con il metodo setName (). Quindi, il costruttore sposterà il flusso di controllo sul metodo setName () e imposterà i valori hanno superato un argomento come "Dipendente"Nome oggetto:

let dipendente = nuovo dipendente ('Jack Smith');
console.registro (dipendente);

Puoi anche invocare il creato "imposta nome()" E "getName ()"Metodi nel modo seguente:

dipendente.SetName ('William Smith');
console.registro (dipendente.getName ());

Le righe di codice sopra offerte verranno impostate "William Smith"Come il nome del"dipendente"Oggetto. Poi il "getName ()"Il metodo ti farà conoscere il valore della proprietà del nome dipendente:

Nell'esempio fornito, il metodo setName () e getName () funzionano come getter e setter .

Esempio 2: getter e setter in classe JavaScript

Per definire i getter e i setter nella classe JavaScript, ES6 offre anche una sintassi specifica. Per mostrarti come usarlo, ci sposteremo nella nostra classe di dipendenti:

ClassPloyee
costruttore (nome)
Questo.nome = nome;

Quindi definiremo il metodo getter utilizzando la parola chiave "Ottenere"Che sarà seguito dal nome del metodo. Un'altra cosa che vorremmo menzionare qui è che il "nome"Proprietà della nostra"Dipendente"La classe sarà cambiata in"_nome"Per evitare il conflitto con il getter e il setter:

getName ()
ritorno questo._nome;

Per definire un metodo di setter, devi aggiungere il "setter"Parola chiave prima di specificare il nome del metodo:

Set name (newName)
newName = newName.ordinare();
if (newName === ")
Lancia "Inserisci gentilmente un nome da dipendente";

Questo._name = newName;

Quando assegnerai qualsiasi valore al "nome"Proprietà della tua"Dipendente"Oggetto di classe, JavaScript invocherà il metodo setter"nome()":

dipendente.name = 'Paul Max';

Successivamente, chiameremo il metodo Out Getter nell'utilizzare la sintassi di seguito:

let empname = dipendente.nome;

Ora, quando l'interprete JavaScript eseguirà le linee sopra offerte, controllerà che esiste qualsiasi "nome"Proprietà nella"Dipendente" classe. Cercherà ulteriormente qualsiasi metodo che lega il "nome"Proprietà se non viene trovata. Nel nostro caso, l'interprete accederà al metodo Getter e dopo averlo eseguito, restituirà il valore di "nome" proprietà:

Nel caso, se non hai definito un metodo di setter nella tua classe JavaScript, otterrai un typeerror che indicherà che non è possibile impostare la proprietà "nome"Del"Dipendente"Oggetto, come"Dipendente"La classe ha solo una funzione getter:

dipendente di classe
costruttore (nome)
Questo.nome = nome;

get name ()
ritorno questo._nome;

// Nessun metodo di setter

let dipendente = nuovo dipendente ("Stephen Edward");
console.registro (dipendente.nome);

Qui cercheremo di cambiare il nome del nostro "dipendente"Oggetto; Tuttavia, non abbiamo aggiunto alcun metodo di setter nella nostra classe:

dipendente.name = 'Paul Smith';
console.registro (dipendente.nome);

Come puoi vedere, abbiamo riscontrato un errore di tipo durante il tentativo di impostare il valore della proprietà:

Conclusione

Utilizzando le parole chiave get and set, è possibile definire facilmente i metodi getter e setter in una classe JavaScript. Il metodo getter restituisce il valore della proprietà, mentre, nel metodo setter, un argomento viene passato al metodo setter, che assegna quel valore specifico alla proprietà dell'oggetto di classe JavaScript. Questo articolo ha discusso di gettatori e setter in JavaScript. Inoltre, abbiamo anche dimostrato esempi relativi alla definizione di getter e al setter e all'uso nella classe JavaScript.