Jaka jest różnica między przełęczami wartości a przełęczami przez odniesienie w JavaScript?

Jaka jest różnica między przełęczami wartości a przełęczami przez odniesienie w JavaScript?
JavaScript to język programowania, który daje naszym aplikacjom internetowym i stronom internetowym możliwość myślenia i działania poprzez interaktywne i dynamiczne. Jak każdy inny język programowania, JavaScript oferuje nam funkcje, które są zestawem zdefiniowanych poleceń lub instrukcji, które są wykonywane tylko wtedy, gdy wywołujemy funkcję, która ma ten kod ten. Funkcja przyjmuje dane wejściowe lub niektóre argumenty i zwraca dane wyjściowe. Argumenty wejściowe mogą być przekazywane przez wartość lub odniesienie.

Tak więc, w tym poście, zdefiniujemy terminy „przekazanie wartości” i „przekazujemy odniesienie” wraz z przykładami w JavaScript, a także wyjaśnili różnice między nimi.

Co to jest wartość podań?

Funkcja jest wywoływana bezpośrednio przez wysłanie wartości zmiennej jako argumentu, jeśli funkcja ta jest przekazywana po wartości. W rezultacie wszelkie zmiany wprowadzone w funkcji nie mają wpływu na wartość początkową lub oryginalną. Oryginalna wartość nie jest zmieniana, ponieważ kiedy przekazujemy zmienną do funkcji jako argument, kopia tej zmiennej jest tworzona, a zatem wszelkie zmiany lub operacje wykonywane w tej funkcji są wykonywane na zmiennej kopii, a nie oryginalnej.

Podejdź według przykładu wartości

Utwórzmy funkcję o nazwie PassbyValue i zmień wartości zmiennych A I B które są przekazywane jako argumenty w tej funkcji. Poza funkcją inicjujemy zmienne A i B i podajemy im odpowiednio 1 i 2 wartości. Następnie pocieszamy log te wartości.

funkcja passbyValue (a, b)
a = 3;
B = 4;
konsola.Log („Wewnątrz funkcji”)
konsola.log („A:”, A, „B:”, B); // 3, 4

Niech a = 1;
Niech b = 2;
konsola.Log („Funkcja zewnętrzna. Przed wywołaniem funkcji ”);
konsola.log („A:”, A, „B:”, B); // 1,2
PassbyValue (a, b);
konsola.Log („Funkcja zewnętrzna. Po wywołaniu funkcji ”);
konsola.log („A:”, A, „B:”, B); // 1,2

Zobaczymy, że kiedy pocieszamy rejestrowanie wartości A i B poza funkcją, powiedzą 1 i 2. Jednak wewnątrz funkcji wartości będą wynosić 3 i 4 i ponownie po wywołaniu tej funkcji, wartości nie zmieniają się, ponieważ kopie funkcji zostały wykonane z A i B, a zmiany zostały wprowadzone do tych kopii.

Co to jest odniesienie?

Funkcja jest wywoływana przez dostarczanie odniesienia/adresu zmiennej jako parametru w Odniesienie do podania. W rezultacie modyfikacja wartości w funkcji modyfikuje również wartość poza funkcją, która jest pierwotną wartością. Funkcja Pass-by-Reference jest używana w tablicach JavaScript i obiektach.

Przejdź przez przykład odniesienia

Zainicjujmy obiekt i podajmy mu dwie właściwości. Jedna właściwość określa nazwę maszyny, a druga „Ison„Co informuje nas, czy maszyna jest włączona, czy nie. Zainicjujemy również funkcję o nazwie PasbyReference i zmień wartość właściwości obiektu komputerowego, takie jak nazwa i ISON. Następnie pocieszamy te właściwości przed i po wywołaniu funkcji:

funkcja passbyReference (maszyna)
maszyna.name = "komputer";
maszyna.ison = true;

var komputer =
Imię: „MyComputer”,
ISON: FAŁSZ
;
konsola.log („przed wywołanie funkcji”);
konsola.dziennik (komputer.Ison); // PRAWDA;
konsola.dziennik (komputer.nazwa); // komputer
PassbyReference (komputer);
konsola.log („po wywołaniu funkcji”);
konsola.dziennik (komputer.Ison); // PRAWDA;
konsola.dziennik (komputer.nazwa); // komputer

Widzimy, że kopie nie zostały wykonane w funkcji, a oryginalne właściwości obiektu komputerowego zostały zmienione, dlatego są przekazywane przez odniesienie.

Różnica między przełęczami wartości a przełęczami przez odniesienie

Główną różnicą między przełęczami wartości a przełęczami przez odniesienie jest to, że przełóż przez odniesienie dochodzi do gry, gdy przypisujemy prymitywne i przekazujemy wartość, gdy przypisujemy obiekty. Prymitywne typy danych obejmują numery ciągów, boolean, symbole i wartości takie jak NULL i niezdefiniowane, a typy danych obiektów obejmują funkcje, tablice i proste obiekty.

Druga główna różnica między nimi polega na tym, że wartość Pass-by-wartość tworzy kopię, a następnie wprowadzane są zmiany w tej kopii; Jednak w przypadku podań po odniesieniu nie jest wykonywana kopia i modyfikacja odbywa się na oryginalnej zmiennej.

Wniosek

Możemy przekazać wartości do funkcji za pośrednictwem wartości przez wartość lub przejście przez odniesienie. PASE WARTO WARTOŚĆ DO PROMITYWNYCH Typów danych, takich jak ciąg, liczba, boolean i za każdym razem, gdy przekazujesz zmienną do funkcji, tworzy kopię tej zmiennej, a następnie modyfikuje tę kopię w wartości przełęczowej. Przekazanie przez odniesienie odbywa się na temat funkcji danych, takich jak funkcje, tablice i obiekty zwykłe, a w przełęczy przez odniesienie oryginalna wartość jest modyfikowana, ponieważ przepustka przez odniesienie nie tworzy kopii.

W tym poście, po pierwsze, widzieliśmy, co jest według wartości i przechodzą przez odniesienie i wyjaśniliśmy zarówno zjawiska za pomocą przykładu, a następnie kontynuowaliśmy naszą dyskusję, odpowiadając na pytanie, jaka jest różnica między przełęczami o wartości i przełęcz Odniesienie w JavaScript.