Quindi, in questo post, definiremo i termini "pass per valore" e "pass per riferimento" insieme ad esempi in JavaScript, oltre a spiegare le differenze tra i due.
Cos'è il passaggio pass-by-valore?
Una funzione viene chiamata direttamente inviando il valore della variabile come argomento se quella funzione è pass per valore. Di conseguenza, eventuali modifiche apportate all'interno della funzione non hanno alcun impatto sul valore iniziale o originale. Il valore originale non viene modificato perché quando passiamo la variabile in una funzione come argomento, viene creata la copia di quella variabile e quindi qualsiasi modifica o operazione eseguita all'interno di quella funzione viene eseguita sulla variabile di copia anziché in quella originale.
Esempio di valore per valore
Creiamo una funzione con il nome di PassbyValue e modificare i valori delle variabili UN E B che sono passati come argomenti in questa funzione. Al di fuori della funzione, inizializziamo le variabili A e B e diamo loro rispettivamente 1 e 2 valori. Quindi console registri questi valori.
funzione passByValue (a, b)Vedremo che quando consolveremo i valori di a e b al di fuori della funzione dirà 1 e 2. Tuttavia, all'interno della funzione, i valori saranno 3 e 4 e di nuovo dopo aver chiamato questa funzione, i valori non cambieranno man mano che le copie della funzione sono state apportate a A e B e le modifiche sono state apportate a quelle copie.
Cos'è il pass-by-reference?
Una funzione viene chiamata fornendo il riferimento/indirizzo della variabile come parametro in Riferimento pass-by. Di conseguenza, la modifica del valore all'interno della funzione modifica anche il valore al di fuori della funzione che è il valore originale. La funzione pass-by-reference viene utilizzata in array e oggetti JavaScript.
Passare per esempio di riferimento
Inizializziamo un oggetto e diamo due proprietà ad esso. Una proprietà definisce il nome della macchina e l'altra "iSon"Il che ci fa sapere se la macchina è attiva o no. Inizializziamo anche una funzione con il nome di Passbyreference e modificare il valore delle proprietà dell'oggetto del computer come il nome e iSon. Quindi console registriamo queste proprietà prima e dopo aver chiamato la funzione:
funzione passbyreference (macchina)Possiamo vedere che le copie non sono state realizzate nella funzione e le proprietà originali dell'oggetto del computer sono state modificate, quindi vengono passate per riferimento.
Differenza tra pass per valore e pass per riferimento
La differenza principale tra pass per valore e pass per riferimento è che il passaggio per riferimento entra in gioco quando assegniamo primitivi e pass per valore entra in gioco quando assegniamo oggetti. I tipi di dati primitivi includono numeri di stringa, booleano, simboli e valori come null e indefiniti e i tipi di dati degli oggetti includono funzioni, array e oggetti semplici.
La seconda grande differenza tra i due è che il pass per valore crea una copia e quindi vengono apportate modifiche a quella copia; Tuttavia, nella referenza pass-by non viene apportata alcuna copia e la modifica viene effettuata sulla variabile originale.
Conclusione
Possiamo passare i valori in una funzione tramite pass per valore o pass per riferimento. Passare per valore viene eseguito sui tipi di dati primitivi come stringa, numero, booleano e ogni volta che si passa una variabile a una funzione, crea una copia di quella variabile e quindi modifica quella copia in un passaggio per valore. Pass per riferimento viene eseguito sul tipo di dati oggetto come funzioni, array e oggetti semplici e nel passaggio per riferimento, il valore originale viene modificato come passaggio per riferimento non crea una copia.
In questo post, in primo luogo, abbiamo visto ciò che è passato per valore e il passaggio per riferimento è e spiegato sia i fenomeni con l'aiuto di un esempio e quindi abbiamo continuato la nostra discussione rispondendo alla domanda su quale sia la differenza tra pass per valore e passaggio Riferimento in JavaScript.