aboutsummaryrefslogtreecommitdiff
path: root/files/ko/glossary/mutable/index.html
blob: 664479134d5a44fb820cc71e7d03326d35e804cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
---
title: Mutable
slug: Glossary/Mutable
tags:
  - CodingScripting
  - Glossary
  - NeedsContent
---
<p>"Mutable"은 변경 가능(가변)한 변수의 유형입니다. <a href="/ko/docs/Glossary/JavaScript">JavaScript</a>에서, <a href="/ko/docs/Glossary/Primitive">원시 값</a>이 아닌 <a href="/ko/docs/Glossary/Object">객체</a><a href="/ko/docs/Glossary/array">배열</a>만이 mutable입니다.</p>

<p>(변수 이름이 새 값을 가리키도록 "만들 수 있지만" 이전 값은 여전히 메모리에 유지됩니다. 따라서 Garbage collection이 필요합니다.)</p>

<p><strong>가변 객체</strong>는 객체가 생성된 후 상태를 수정할 수 있는 객체입니다.</p>

<p><strong>불변 객체</strong>는 일단 객체가 생성되면 상태를 변경할 수 없는 객체입니다.</p>

<p><strong>문자열과 숫자</strong><strong>불변</strong>입니다. 예제를 보고 이해해볼까요?</p>

<pre>var immutableString = "Hello";

// 위의 코드에서는 문자열 값을 가진 새 개체가 생성됩니다.

immutableString = immutableString + "World";

// 우리는 지금 기존 값에 "World" 를 추가하고 있습니다.
</pre>

<p>문자열 값을 사용하여 "immutableString" 을 추가하면 다음 이벤트가 발생합니다.:</p>

<ol>
 <li>기존 값 "immutableString"이 검색되었습니다.</li>
 <li>"World"가 "immutableString"의 기존 값에 추가됩니다.</li>
 <li>결과 값이 새 메모리 블록에 할당됩니다.</li>
 <li>"immutableString" 객체는 새로 만든 메모리 공간을 가리킵니다.</li>
 <li>기존에 생성한 메모리 공간은 Garbage collection이 가능해 집니다.</li>
</ol>

<h2 id="Learn_more">더 알아보기</h2>

<h3 id="General_knowledge">일반적 지식</h3>

<ul>
 <li>{{Interwiki("wikipedia", "Immutable object")}} on Wikipedia</li>
</ul>