# Передача объектов по ссылке в JavaScript

Массивы и объекты несколько отличаются от остальных примитивных типов данных. Отличие в том, что переменная, хранящая массив, на самом деле не содержит его, а просто ссылается на него.

На практике это означает, что при записи объекта в другую переменную, обе переменных будут ссылаться на один и тот же объект. Давайте попробуем на практике. Пусть у нас есть следующий объект:

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

Присвоим его из одной переменной в другую:

`let obj2 = obj1;`

Изменим одну из переменных:

`obj2.a = '!';`

В результате изменения будут видны и в другой переменной:

`console.log(obj1); // {a: '!', b: 2, c: 3}`

Не запуская код, определите, что выведется в консоль:

`let arr1 = [1, 2, 3]; let arr2 = arr1; arr1[0] = 'a'; console.log(arr2);`

Не запуская код, определите, что выведется в консоль:

`let arr1 = [1, 2, 3]; let arr2 = arr1; arr1[0] = 'a'; arr2[1] = 'b'; console.log(arr1);`

Не запуская код, определите, что выведется в консоль:

`let arr1 = [1, 2, 3]; let arr2 = arr1; arr1[0] = 'a'; arr2[0] = 'b'; console.log(arr2);`
← →
↑
en ru