Con l'aiuto dell'incapsulamento, puoi facilmente legamento IL dati o una singola unità ai metodi che stanno eseguendo alcune operazioni su di esso. Ti consente inoltre di convalidare e controllare il flusso di dati in un'applicazione JavaScript.
Questo articolo spiegherà l'incapsulamento in JavaScript con l'aiuto di esempi adatti. Quindi iniziamo!
Incapsulamento in javascript
Incapsulamento In JavaScript è una metodologia utilizzata per Nascondere informazioni. Si basa sul concetto che le proprietà degli oggetti non dovrebbero essere esposte pubblicamente al mondo esterno. L'implementazione dell'incapsulamento in JavaScript impedisce l'accesso alle variabili aggiungendo entità pubbliche all'interno di un oggetto, che i chiamanti possono utilizzare per ottenere risultati specifici.
Esempio: implementazione dell'incapsulamento in JavaScript
Prima di tutto, creeremo un oggetto JavaScript chiamato "alunno" avere un "nome" proprietà:
var Student =Nel prossimo passaggio, stamperemo il valore iniziale di "nome" proprietà:
console.log ("Il nome dello studente è:"+ studente.nome);Quindi, modificheremo il "alunno.nome"Valore della proprietà e di nuovo utilizza il"console.tronco d'albero()"Metodo per visualizzarlo nella console:
alunno.name = "max";Produzione
Come puoi vedere, tutto funziona perfettamente in base alla logica aggiunta. Tuttavia, sorgerà un problema quando un utente inserisce un valore intero per "alunno.nome" proprietà.
Esempio: convalida dei dati con metodi di incapsulamento in JavaScript
Una variabile JavaScript può contenere un valore di qualsiasi tipo di dati, quindi per risolvere il problema menzionato, dobbiamo limitare la gamma di caratteri legali per "nome" costo dell'immobile. A tale scopo, utilizzeremo a Regex espressione "/\ d+/"Ciò manterrà un controllo"Uno o più occorrenze dei caratteri delle cifre (0-9)". Questa espressione di regex verrà aggiunta in un nuovo metodo setter, "imposta nome"Che esegue ulteriori test:
var Student =Successivamente, aggiungeremo un metodo getter "getname"Per recuperare il"alunno.nome" costo dell'immobile:
getName: function ()Ora, se l'affermazione "espressione.Test (valore)"Valuta di essere"VERO,"Quindi verrà visualizzato un messaggio nella finestra della console affermando che"Viene inserito il nome non valido", Altrimenti il"valore"Passato come argomento verrà assegnato al"nome" proprietà:
Abbiamo eseguito correttamente la convalida usando un'espressione di regex nel metodo setter, ma il nostro programma non è completamente incapsulato. Questo perché il "nome"La proprietà è dichiarata a livello globale, che consente al chiamante di accedere e modificarne il valore:
alunno.nome = 34;L'output di cui sopra mostra che quando abbiamo accettato direttamente "nome"Proprietà del"alunno"Oggetto, la convalida non accade e"34"È impostato come valore della proprietà. Questa azione dimostra che se la proprietà di un oggetto è disponibile a livello globale, è possibile accedere facilmente, il che rischia la sicurezza dei dati.
Incapsulamento in JavaScript usando l'ambito della funzione
Piuttosto che esporre le proprietà dell'oggetto; dobbiamo nasconderlo dall'esterno. Per farlo, puoi usare il "var"Parola chiave per definire una proprietà privata e racchiuderla nell'ambito di una funzione.
Esempio: incapsulamento in JavaScript usando l'ambito della funzione
Nel seguente "newfunc () " Definizione, "X"È una variabile privata a cui è possibile accedere all'interno del corpo della funzione:
funzione newFunc ()L'esecuzione del codice fornito mostra un errore perché "X"È definito in"newfunc ()"E lo accessiamo in termini di portata globale:
Allo stesso modo, aggiungendo "nome"Come variabile privata all'interno del"setter"Il metodo limiterà il suo accesso diretto. In questo scenario, il "nome"La variabile non può essere utilizzata al di fuori del"setter"Ambito del metodo, il che significa che il"getter"Anche il metodo non può accedervi.
Usando "Chiusure"È il modo più semplice ed elegante per implementare l'incapsulamento in JavaScript.
Incapsulamento in JavaScript usando le chiusure
All'interno di una funzione genitore, "Chiusure"Consenti a una funzione di utilizzare la variabile locale di un'altra funzione.
Ad esempio, abbiamo una variabile privata "nome", A cui è possibile accedere con entrambi i metodi"getname" E "imposta nome"All'interno dell'ambito della funzione. Di conseguenza, ogni volta che viene invocata la funzione anonima, deve restituire l'oggetto interno e assegnarlo a una variabile esterna.
Esempio: incapsulamento in JavaScript usando le chiusure
In questo esempio, quando invochiamo il "imposta nome()" E "getName ()"Funzioni, questa azione genera un nuovo ambito di chiusura di invocazione. L'ambito viene quindi preservato restituendo un puntatore al "alunno"Oggetto:
var Student = function ()La funzione data che termina con “()"Indica che stiamo invocando la funzione e assegnando il valore restituito al"alunno"Variabile:
console.registro (studente.getName ());In questo caso, l'incapsulamento è completamente implementato utilizzando Chiusure, e i chiamanti non possono accedere direttamente alla variabile privata:
Questo riguardava le informazioni di base relative a Incapsulamento In JavaScript; Puoi esplorarlo ulteriormente in base alle nostre esigenze.
Conclusione
Usando Scopi della funzione E Chiusure, Incapsulamento In JavaScript può essere implementato facilmente. Con l'aiuto dell'incapsulamento, è possibile associare i dati o una singola unità ai metodi che stanno eseguendo alcune operazioni su di esso. Ti consente inoltre di convalidare e controllare il flusso di dati in un'applicazione JavaScript. Questo articolo ha spiegato l'incapsulamento in JavaScript insieme ad esempi adeguati.