16장 - 프로퍼티 어트리뷰트

Jaeseok0106·2022년 3월 17일
0

자바스크립트공부

목록 보기
11/14

자바스크립트는 프로퍼티 생성 시 프로퍼티의 상태를 나타내는 프로퍼티 어트리뷰트를 자동으로 정의해준다.
Object.getOwnPropertyDescripto메서드를 통해 프로퍼티 어트리뷰트의 정보를 제공하는 프로퍼티 디스크립터 객체를 반환한다.

  • 프로퍼티 구분
  1. 데이터 프로퍼티
    키와 값으로 구성된 일반적인 프로퍼티
  2. 접근자 프로퍼티
    자체적으로는 값이 없고 다른 데이터 프로퍼티의 값을 읽거나 저장할 때 호출되는 접근자 함수로 구성된 프로퍼티
  • 데이터 프로퍼티
  1. Value - 프로퍼티 키를 통해 프로퍼티 값에 접근하면 반환되는 값

  2. Writable – 프로퍼티 값의 변경 여부를 나타내며, false인 경우 해당 프로퍼티의 Value 값을 변경할 수 없다.

  3. Enumerable – 프로퍼티의 열거 가능 여부를 나타내며, false 인 경우 for..in 또는 object.keys 메서드로 열거할 수 없다.

  4. Configurable – 프로퍼티의 재정 가능 여부를 나타내며, false인 경우 해당 프로퍼티의 삭제와 프로퍼티 어트리뷰트 값을 변경할 수 없다.

  • 접근자 프로퍼티
  1. get – 접근자 프로퍼티를 통해서 데이터 프로퍼티의 값을 읽을 때 호출되는 접근자.

  2. set – 접근자 프로퍼티를 통해 데이터 프로퍼티의 값을 저장할 때 호출되는 접근자 함수

  3. Enumerable – 데이터 프로퍼티와 동일

  4. Configurable – 데이터 프로퍼티와 동일

  • 프로퍼티의 정의
  1. Obeject.defineProperty 메서드를 통해 어트리뷰트를 정의 가능.
  • value, get, set은 생략 시 기본값 undefined
  • writable, enumerable, configurable은 생략 시 기본 값 false
  1. Object.defineProperty는 하나의 프로퍼티만 정의 가능하나, Object.defineProperties는 여러 개의 프로퍼티를 한 번에 정의할 수 있음.
  • 객체 변경 금지
  1. 객체 확장 금지
    -> Object.preventExtensions을 통해 객체의 확장을 금지시킴. 금지된 객체는 프로퍼티 추가가 불가능하다.

  2. 객체 밀봉 금지
    -> Object.seal 메서드를 통해 객체를 밀봉시킨다. 밀봉된 객체는 읽기와 쓰기만 가능하며, 밀봉 여부는 Object.isSealed 메서드로 확인한다.

  3. 객체 동결
    -> Object.freeze 메서드로 객체를 동결하며, 동결된 객체는 읽기만 가능하다. 동결 여부는 Object.isFrozen 메서드로 확인한다.

0개의 댓글

관련 채용 정보