프로퍼티 어트리뷰트

어승준·2023년 10월 9일

JS 스터디

목록 보기
8/26
post-thumbnail

📌 프로토타입 체인에 대해서 말해주세요

  • 자바스크립트는 객체의 프로퍼티에 접근하려고 할 때 해당 객체에 접근하려는 프로퍼티가 없다면 [[Prototype]] 내부 슬롯 참조를 따라 자신의 부모 역할을하는 프로토타입의 프로퍼티를 순차적으로 검색한다. 이를 프로토타입 체인이라고 한다.

📌 JS 개발 시, 프로퍼티 어트리뷰트를 조작할 일이 많이 없거나 아예 없었을텐데, 이 개념을 알아야하는 이유는 무엇인가요?

  • 만약 API에서 받아온 객체를 그대로 쓴다면, 더 안정적으로 관리하기 위해서는 아예 해당 객체 값을 변경할 수 없게 하면 더욱 안정적인 코드 관리가 가능합니다. 따라서 이러한 기능들을 프로퍼티 어트리뷰트 파트를 통해 우리는 얻어갈 수 있어요!
  • 즉, 객체 데이터에 대한 불변성 보장을 통한 안정적 코드 관리

📌 프로퍼티 어트리뷰트란 무엇이며 어떤 정보를 포함하나요?

  • 자바스크립트 엔진이 관리하는 내부 상태 값(meta-property)인 내부 슬롯 [[Value]], [[Writable]], [[Enumerable]], [[Configurable]] 이다.

📌 프로퍼티의 어트리뷰트를 정의할 때 사용하는 메서드에 대해 설명해주세요.

  • Object.defineProperty메서드를 사용해 프로퍼티의 어트리뷰트를 정의할 수 있다.
    인수로는 객체의 참조와 데이터 프로퍼티의 키인 문자열, 프로퍼티 디스크립터 객체를 전달한다.

📌 프로토타입 내부 슬롯 [[Prototype]]에 직접 접근할 수 없는 이유와 접근 방법에 대해 설명해 주세요.

  • 자바스크립트 엔진의 내부 로직이므로 원칙적으로 자바스크립트는 내부 슬롯과 내부 메서드에 직접 접근하거나 호출할 수 있는 방법을 제공하지 않는다.
  • 단, 일부 내부 슬롯과 내부 메서드에 한하여 직접 접근할 수 있는 수단을 제공하기는 한다.
    [[Prototype]]: 원칙적으로 집적 접근할 수 없지만 proto를 통해 간접적으로 접근 가능하다
profile
鈍筆勝聰(둔필승총) : '둔한 붓이 총명함을 이긴다' (서툴더라도 기록으로 남기는 것이 사람의 기억보다 훨씬 오래 보전된다) - 정약용

0개의 댓글