Immutable & Mutable

wony·2022년 4월 23일
0

Immutable

Immutable한 객체는 생성된 이후에 상태가 변경되지 않는 객체를 말한다.
자바스크립트에서 Object와 Array를 제외한 모든 타입은 Immutable한 타입이다.

let immutableString = 'Hello';


immutableString = immutableString + 'World';

immutableString에 string 값을 더하면, 아래와 같은 이벤트들이 발생한다.

  1. immutableString에 존재하던 값을 읽음

  2. 'World'가 immutableString에 존재하던 값에 덧붙여짐

  3. 결과값이 새로운 메모리 블록에 할당됨

  4. immutableString 객체가 새로운 메모리 공간을 가리킴

  5. 이전에 immutableString이 가리키던 메모리 공간은 GC의 대상이 됨

따라서 Immutable한 타입은, 이전의 상태를 전혀 변화하지 않고 새로운 상태로 만들기 때문에 변경되지 않는다고 말하는 것이다.

Mutable

Mutable한 객체는 생성된 이후에 상태가 변경될 수 있는 객체이다

let mutableArray = ["철수", "훈이", "맹구"]

mutableArray.push("유리", "짱구")

mutableArray ['철수', '훈이', '맹구', '유리', '짱구']

원래의 배열이 변경된 것을 볼 수 있다

원래의 배열을 직접 변경하느 메소드

  • push()
  • pop()
  • shift()
  • unshift()
  • reverse()
  • sort()
  • splice()

출처-https://2ssue.github.io/common_questions_for_Web_Developer/docs/Programming/12_immutable&mutable.html

profile
무럭무럭 성장중🌿

0개의 댓글