Cos'è un prototipo in JavaScript

Cos'è un prototipo in JavaScript

JavaScript è un linguaggio basato su dinamico e prototipo, quindi i prototipi sono uno dei concetti più importanti di JavaScript. Discutiamo prima perché abbiamo bisogno di prototipi.

Perché abbiamo bisogno di prototipi?

Come accennato in precedenza, JavaScript è un linguaggio dinamico, il che significa che possiamo aggiungere proprietà a un oggetto ogni volta che vogliamo. Facciamo un esempio per spiegare questo:

function player ()
Questo.name = 'hazard';
Questo.club = 'Chelsea';

var player1 = new player ();
giocatore1.età = 30;
Avviso (Player1.età);
var player2 = new Player ();
Avviso (Player2.età);

In questo esempio, abbiamo dato un'altra proprietà al giocatore di oggetti. Tuttavia, il primo oggetto I-E Player1 avrà proprietà dell'età ma non il secondo oggetto I-E Player2. La ragione di ciò è che la proprietà dell'età è definita solo per l'oggetto Player1.

Possiamo vedere l'oggetto Player2 mostra indefinito nell'output seguente dell'esempio sopra:

Ora che sappiamo quale problema stiamo affrontando, sorge la domanda: qual è la soluzione? La soluzione a questo problema è "prototipo".

Soluzione

I prototipi sono una caratteristica integrata di JavaScript. Ogni volta che si crea una funzione JavaScript, JavaScript aggiunge automaticamente un prototipo a quella funzione. Possiamo dire che un prototipo è un oggetto che ti consente di aggiungere nuove proprietà a un oggetto esistente. In breve, i prototipi contengono una classe base di tutti gli oggetti, aiutandoci a raggiungere l'eredità.

Possiamo allegare proprietà aggiuntive all'oggetto prototipo che verrà quindi condiviso in tutte le istanze.

Ora useremo la proprietà prototipo nell'esempio sopra per risolvere il problema della condivisione della proprietà dell'età su tutti gli oggetti I-E Player1 e Player2.

function player ()
Questo.name = 'hazard';
Questo.club = 'Chelsea';

Giocatore.prototipo.età = 30;
var player1 = new player ();
Avviso (Player1.età);
var player2 = new Player ();
Avviso (Player2.età);

Vedremo che ora le età di entrambi i giocatori saranno 30. L'output è mostrato di seguito:

Per semplicemente, la proprietà prototipo di JavaScript ci aiuta ad aggiungere nuove proprietà ai costruttori di oggetti come mostrato nell'esempio sopra.

Proprietà prototipo di un oggetto

Ogni oggetto avviato utilizzando la sintassi letterale o avviato usando la sintassi del costruttore usando la nuova parola chiave, include la proprietà __Proto__. Questo indicherà l'oggetto prototipo che ha creato questo oggetto.

Se desideri vedere la proprietà prototipo di un oggetto, possiamo vederlo nello strumento Debug Developer. Nell'esempio seguente lo implementeremo e lo visualizzeremo nella finestra della console.

Esempio

function player ()
Questo.name = 'hazard';
Questo.club = 'Chelsea';

var playerObject = new Player ();
// finestra console
console.registro (giocatore.prototipo);
console.Registro (PlayerObject.prototipo);
console.Registro (PlayerObject.__proto__);
console.log (typeof player);
console.tronco d'albero();

In questo esempio possiamo vedere che si accede alla proprietà prototipo di funzione utilizzando il nome della funzione che è il lettore.prototipo.

In questo esempio possiamo anche vedere che la proprietà prototipo non è esposta all'oggetto, possiamo accedervi solo usando "__proto__".

Prototipo di oggetto

Nell'esempio precedente, abbiamo visto che la proprietà del prototipo di oggetti non è definita, il che significa che è invisibile. Possiamo usare l'oggetto.Metodo GetProtoTypeof (OBJ) Invece di quello che abbiamo usato i-e "__proto__". Con questo non sarà indefinito e saremo in grado di accedere all'oggetto prototipo.

function player ()
Questo.name = 'hazard';
Questo.club = 'Chelsea';

var playerObject = new Player ();
Giocatore.prototipo.selezionato = function ()
Avviso ("selezionato per la squadra di oggi");

var player1 = new player ();
var checkingproto = oggetto.getProtoTypeof (Player1);
// Questo restituirà l'oggetto prototipo1
Avviso (checkProto.costruttore);
// questa restituirà la funzione Player1 selezionata

Conclusione

In questo articolo abbiamo discusso principalmente il concetto di base di prototipi in JavaScript. Abbiamo scavato un po 'più a fondo e discusso di ciò che è un prototipo in JavaScript. Abbiamo anche discusso di un problema e dato la soluzione usando il prototipo. A parte questo abbiamo discusso di trovare proprietà e metodi di oggetti in JavaScript usando i prototipi. Tutto ciò è stato dimostrato con l'aiuto di esempi per sviluppare una migliore comprensione del concetto.