Пренос на објекти по референца во JavaScript

Низите и објектите малку се разликуваат од останатите примитивни типови на податоци. Разликата е во тоа што променливата која чува низа, всушност не ја содржи самата низа, туку само реферира на неа.

Во пракса, ова значи дека при запишување на објект во друга променлива, двете променливи ќе реферираат на истиот објект. Ајде да испробаме во пракса. Нека имаме следниов објект:

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

Да го доделиме од една променлива во друга:

javascriptlet obj2 = obj1;

Да ја измениме една од променливите:

javascriptobj2.a = '!';

Како резултат, промените ќе бидат видливи и во другата променлива:

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

Без да го стартувате кодот, определете што ќе се испечати во конзолата:

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

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

Без да го стартувате кодот, определете што ќе се испечати во конзолата:

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

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

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

Без да го стартувате кодот, определете што ќе се испечати во конзолата:

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

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

console.log(arr2);