Przekazywanie obiektów przez referencję w JavaScript

Tablice i obiekty nieco różnią się od pozostałych prymitywnych typów danych. Różnica polega na tym, że zmienna przechowująca tablicę w rzeczywistości jej nie zawiera, a jedynie odnosi się do niej.

W praktyce oznacza to, że przypisując obiekt do innej zmiennej, obie zmienne będą odnosić się do tego samego obiektu. Sprawdźmy to w praktyce. Załóżmy, że mamy następujący obiekt:

javascriptlet obj1 = {a: 1, b: 2, c: 3};

Przypiszmy go z jednej zmiennej do drugiej:

javascriptlet obj2 = obj1;

Zmodyfikujmy jedną ze zmiennych:

javascriptobj2.a = '!';

W wyniku zmiany będą widoczne również w drugiej zmiennej:

javascriptconsole.log(obj1); // {a: '!', b: 2, c: 3}
Задание 1

Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:

javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;

arr1[0] = 'a';
console.log(arr2);
Задание 2

Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:

javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;

arr1[0] = 'a';
arr2[1] = 'b';

console.log(arr1);
Задание 3

Bez uruchamiania kodu określ, co zostanie wypisane w konsoli:

javascriptlet arr1 = [1, 2, 3];
let arr2 = arr1;

arr1[0] = 'a';
arr2[0] = 'b';

console.log(arr2);