ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • getter, setter 함수
    JavaScript 2020. 10. 21. 18:56

    자바스크립트 객체 프로퍼티 종류

    자바스크립트에서는 객체의 프로퍼티가 2가지 종류로 나뉘게 된다. 하나는 데이터 프로퍼티이다.

    흔히 사용하는 {'apple' : '사과'} 형태와 같이 프로퍼티에 Data Type이 들어가는 형태이다. 다른 하나는 접근자 프로퍼티(accessor property) 라 불리는 새로운 종류의 프로퍼티이다.

     

    접근자 프로퍼티 ( get, set )

    접근자 프로퍼티의 본질은 함수인데, 이 함수는 값을 획득(get)하고 설정(set)하는 역할을 담당한다. 그런데 외부 코드에서는 함수가 아닌 일반적인 프로퍼티처럼 보이게 된다. 

    즉 접근자 프로퍼티는 내부적으로 Function 객체를 생성하여 호출하며 함수와 동일하게 동작하지만 외부적으로는 프로퍼티 형태로 Key 값을 통해 접근하여 값을 확인, 수정, 할당과 같은 동작을 수행하게 된다. 아래 예시를 살펴보자

    위의 자료를 통해 getter 매소드는 값을 읽을 때 실행되며, setter 매소드는 값을 변경, 추가할 때 사용된다는 것을 확인할 수 있으며, 외부에 보일 때에는 프로퍼티처럼 보여지는 것을 알 수 있다.

    obj.getScore 처럼 객체의 프로퍼티에 접근 하는 형태로 보여지지만 내부적으로는 getter 매소드를 사용한 getScore 이라는 함수가 실행되게 된다.

    setter 매소드 역시 마찬가지로 80이라는 값을 할당연산자(=) 을 통해 할당 받은 것 처럼 보이지만 내부적으로는 setter 매소드의 인자로 받아 this 키워드를 통해 현재 객체의 score 이라는 데이터 프로퍼티의 값을 변경하게 된다.

     

    댓글

Designed by Tistory.