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);