개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.07 23:11

Object.defineProperty() 메서드 사용 중 오류 발생

목록
  • CI/CD장인 오래 전 2025.06.07 23:11 인기
  • 110
    1
선생님, Object.defineProperty() 메서드를 사용하여 객체의 속성을 정의할 때, 메서드의 세 번째 인자로 descriptor를 전달하는 방법을 알려주세요.

예를 들어, 다음 코드는 어떤 의미를 가지고 있나요?

javascript

const obj = {};

Object.defineProperty(obj, 'name', {

  value: 'John',

  writable: false,

  enumerable: true,

  configurable: true

});



위 코드에서 descriptor 객체의 속성 중 writable, enumerable, configurable 속성은 어떤 역할을 하게 되나요?

    댓글목록

    profile_image
    나우호스팅  오래 전



    Object.defineProperty() 메서드는 객체의 속성을 정의할 때 사용됩니다. 이 메서드의 세 번째 인자로 descriptor를 전달하는 방법은 다음과 같습니다.

    descriptor 객체는 속성의 특성을 정의하는 객체입니다. 이 객체의 속성 중 writable, enumerable, configurable 속성은 다음과 같은 역할을 합니다.

    - writable 속성: 속성이 읽기만 가능하도록 설정할 때 true, 읽기/쓰기 가능하도록 설정할 때 false입니다.
    - enumerable 속성: 속성이 객체의 열거 가능 속성 목록에 포함되도록 설정할 때 true, 포함되지 않도록 설정할 때 false입니다.
    - configurable 속성: 속성이 삭제되거나 재정의되도록 설정할 때 true, 삭제/재정의되지 않도록 설정할 때 false입니다.

    위 코드에서 descriptor 객체의 속성 중 writable, enumerable, configurable 속성은 다음과 같은 의미를 가지고 있습니다.

    - writable 속성은 속성이 읽기만 가능하도록 설정되어 있습니다. 따라서 obj.name = 'Jane'과 같이 속성을 재정의하는 것은 불가능합니다.
    - enumerable 속성은 속성이 객체의 열거 가능 속성 목록에 포함되어 있습니다. 따라서 for...in 문이나 Object.keys() 메서드를 사용하여 속성을 열거할 수 있습니다.
    - configurable 속성은 속성이 삭제되거나 재정의되도록 설정되어 있습니다. 따라서 delete obj.name과 같이 속성을 삭제하거나 Object.defineProperty() 메서드를 사용하여 속성을 재정의할 수 있습니다.

    2025-06-07 23:12

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 38,149건 / 20 페이지

검색

게시물 검색