diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:43:23 -0500 |
commit | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch) | |
tree | a9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/glossary/object_reference | |
parent | 074785cea106179cb3305637055ab0a009ca74f2 (diff) | |
download | translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2 translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip |
initial commit
Diffstat (limited to 'files/uk/glossary/object_reference')
-rw-r--r-- | files/uk/glossary/object_reference/index.html | 50 |
1 files changed, 50 insertions, 0 deletions
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 +--- +<p><strong>Посилання на об'єкт</strong> (англ. object reference) — це певний <em>ключ</em>, призначений для опосередкованого доступу до об'єкта. Залежно від мови програмування то може бути адреса об'єкта в пам'яті, чи будь-який неповторний ключ (рядок або число) в асоціативному масиві абощо.</p> + +<p>В таких мовах програмування, як C/C++, розрізняють три різновиди змінних: вказівник (англ. pointer), посилання (англ. reference) та, власне, значення. Це рівною мірою стосується як {{Glossary("Primitive", "простих типів даних")}}, так і {{Glossary("object", "об'єктів")}}. Натомість в Java, JavaScript та багатьох інших мовах розрізняють лише значення (за значенням зберігаються та передаються лише прості величини) та посилання (об'єкти завжди передаються та зберігаються за посиланням).</p> + +<h2 id="Приклади">Приклади</h2> + +<p>Збагнути різницю між значенням та посиланням легко з порівняння двох прикладів.</p> + +<p>Пості величини завжди зберігаються як значення, а тому копіювання означає створення незалежної копії самого значення:</p> + +<pre class="brush: js">var origin = 5; +var clone = origin; + +console.log(origin); // виводить 5 +console.log(clone); // виводить 5 + +origin++; + +console.log(origin); // виводить 6 +console.log(clone); // виводить 5</pre> + +<p>Втім змінна ніколи не зберігає сам об'єкт, а лише посилання на нього. Звідси випливає те, що копіювання змінної, що посилається на об'єкт, створює не копію об'єкта, а копію посилання, а отже обидві змінні посилаються на одне й те саме:</p> + +<pre class="brush: js">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 +</pre> + +<h2 id="Дізнатись_більше">Дізнатись більше</h2> + +<h3 id="Загальні_відомості">Загальні відомості</h3> + +<ul> + <li>{{Interwiki("wikipedia", "Посилання_(програмування)", "Посилання")}} у Вікіпедії</li> +</ul> |