Study/JavaScript

[JavaScript_study] 객체 타입(object)

갈푸라떼 2022. 4. 10. 18:57

* 객체 : 복합데이터
  > 여러데이터를 묶어서 표현
  > 상태와 행동을 묶어서 표현가능  : { key : value } 
    ex) { id : 1234, key : 'secret-key' }
  > value에는 원시(primitive), 객체(object)둘다 들어갈 수 있다.

* 원시타입은 메모리 셀에 값 그자체가 들어가게 되고 객체는 Heap이라는 공간안에 메모리가 할당된다.
  > Heap은 데이터의 사이즈가 정해져 있지 않고 동적으로 사이즈가 변화되는곳이 저장되는곳이다.
  > 객체자체는 Heap어딘가에 메모리에 저장되어있고 메모리셀 여러개에 거처서 객체가 할당이 된다.
  > 객체를 지칭하는 변수는 실제 메모리가 들어가 있는 메모리 주소를 가지고 있다.
    : 객체의 메모리 할당은 해당 값을 가지고 있지 않고 메모리값이 저장되어 있는 주소를 가르키고 있다.

    : Call by reference
  

// 객체를 사용하지 않을 경우
// 변수를 하나하나 설정해야해서 심각한 메모리 낭비가 발생한다.
let name = 'apple';
let color = 'red';
let display = '🍎';
let orangeName = 'orange';

let apple = {
  name: 'apple',
  color: 'red',
  display: '🍎',
};
console.log(apple);
console.log(apple.name);
console.log(apple.color);
console.log(apple.display);

let orange = {
  name: '오렌지',
  color: 'orange',
  display: '🍊',
};
console.log(orange);