From 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:43:23 -0500 Subject: initial commit --- files/uk/glossary/object_reference/index.html | 50 +++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 files/uk/glossary/object_reference/index.html (limited to 'files/uk/glossary/object_reference') diff --git a/files/uk/glossary/object_reference/index.html b/files/uk/glossary/object_reference/index.html new file mode 100644 index 0000000000..aaba46f1e6 --- /dev/null +++ b/files/uk/glossary/object_reference/index.html @@ -0,0 +1,50 @@ +--- +title: Посилання на об'єкт +slug: Glossary/Object_reference +tags: + - Посилання + - Словник +translation_of: Glossary/Object_reference +--- +

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

+ +

В таких мовах програмування, як C/C++, розрізняють три різновиди змінних: вказівник (англ. pointer), посилання (англ. reference) та, власне, значення. Це рівною мірою стосується як {{Glossary("Primitive", "простих типів даних")}}, так і {{Glossary("object", "об'єктів")}}. Натомість в 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
+
+ +

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

+ +

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

+ + -- cgit v1.2.3-54-g00ecf