프로퍼티 종류

  • 데이터 프로퍼티 : 지금까지 사용, 설명한 모든 프로퍼티 (key, value , 설명자, 함수)

  • 접근자 프로퍼티 : 엄밀히 보면 함수로 get과 set역할하는 프로퍼티로 외부에서 보면 일반적인 프로퍼티 처럼 보인다.

접근자 프로퍼티 (getter / setter)

let user = {
  name: 'John',
  surname: 'Smith',

  get fullName() {
    return `${this.name} ${this.surname}`;
  },
  set fullName(value) {
    [this.name, this.surname] = value.split(' ');
  },
};

alert(user.fullName); // John Smith

위와 같이 getter와 setter를 이용해 가상의 프로퍼티를 구성할 수 있고, 이는 읽고 쓸 순 있지만 실제로 존재하진 않는다.

접근자 프로퍼티에는 설명자 valuewritable이 없고 get/set함수가 존재하며 프로퍼티는 접근자 프로퍼티데이터 프로퍼티중 한종류에만 속한다.

활용 방법

  1. 프로퍼티 값을 통제하기 위해 wrapper처럼 사용하기

위 처럼 set함수를 통해 프로퍼티 입력 단계에서 제어하기 위해 사용할 수 있다.

  1. 비슷한 개념의 프로퍼티를 (있어도 나쁠것이 없는) 생성할때, 기존의 프로퍼티 값을 이용하여 프로퍼티를 생성할때

태어난 날을 이용하여 객체를 생성할때 이를 이용해 age를 계산하여 생성하고싶을때 이용하면 유용하게 사용할 수 있다.

Last updated