Посилання на об'єкт

Посилання на об'єкт (англ. object reference) — це певний ключ, призначений для опосередкованого доступу до об'єкта. Залежно від мови програмування то може бути адреса об'єкта в пам'яті, чи будь-який неповторний ключ (рядок або число) в асоціативному масиві абощо.

В таких мовах програмування, як C/C++, розрізняють три різновиди змінних: вказівник (англ. pointer), посилання (англ. reference) та, власне, значення. Це рівною мірою стосується як простих типів даних, так і об'єктів. Натомість в Java, JavaScript та багатьох інших мовах розрізняють лише значення (за значенням зберігаються та передаються лише прості величини) та посилання (об'єкти завжди передаються та зберігаються за посиланням).

Приклади

Збагнути різницю між значенням та посиланням легко з порівняння двох прикладів.

Пості величини завжди зберігаються як значення, а тому копіювання означає створення незалежної копії самого значення:

var origin = 5;
var clone = origin;

console.log(origin);  // виводить 5
console.log(clone);   // виводить 5

origin++;

console.log(origin);  // виводить 6
console.log(clone);   // виводить 5

Втім змінна ніколи не зберігає сам об'єкт, а лише посилання на нього. Звідси випливає те, що копіювання змінної, що посилається на об'єкт, створює не копію об'єкта, а копію посилання, а отже обидві змінні посилаються на одне й те саме:

var origin = {x: 5};
var clone = origin;

console.log(origin.x);  // виводить 5
console.log(clone.x);   // виводить 5

origin.x++;

console.log(origin.x);  // виводить 6
console.log(clone.x);   // виводить 6

Дізнатись більше

Загальні відомості

Мітки документа й учасники

 Зробили внесок у цю сторінку: asmforce
 Востаннє оновлена: asmforce,