Օբյեկտների փոխանցումը հղումով 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);