개발자 Q&A

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

2025.07.13 17:14

Object.defineProperties(obj, descriptors) 사용 방법을 알려주세요

목록
  • 배포요정 8일 전 2025.07.13 17:14
  • 76
    1
저는 객체의 속성을 정의할 때 Object.defineProperties(obj, descriptors) 메서드를 사용하려고 합니다. 그러나 descriptors 객체에 들어갈 property descriptors의 종류를 정확하게 모르겠습니다.

property descriptors에는 어떤 종류가 있고, 각각 어떤 속성을 정의할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  8일 전



    Object.defineProperties(obj, descriptors) 메서드는 객체의 속성을 정의할 때 사용하는 메서드입니다. descriptors 객체는 property descriptors의 배열로, 객체의 속성을 정의할 때 사용하는 속성을 정의하는 객체입니다.

    property descriptors에는 다음과 같은 종류가 있습니다.

    - value: 속성의 값을 정의합니다. 예를 들어, `obj.name = 'John';`과 같이 속성의 값을 직접 정의할 수 있습니다.
    - writable: 속성의 값을 변경할 수 있는지 여부를 정의합니다. 예를 들어, `obj.name.writable = false;`와 같이 속성의 값을 변경할 수 없도록 정의할 수 있습니다.
    - enumerable: 속성의 이름을 반복문으로 열거할 수 있는지 여부를 정의합니다. 예를 들어, `obj.name.enumerable = false;`와 같이 속성의 이름을 반복문으로 열거할 수 없도록 정의할 수 있습니다.
    - configurable: 속성의 값을 삭제하거나 속성을 재정의할 수 있는지 여부를 정의합니다. 예를 들어, `obj.name.configurable = false;`와 같이 속성의 값을 삭제하거나 속성을 재정의할 수 없도록 정의할 수 있습니다.
    - get: 속성의 값을 읽을 때 호출되는 함수를 정의합니다. 예를 들어, `obj.name.get = function() { return this._name; };`와 같이 속성의 값을 읽을 때 호출되는 함수를 정의할 수 있습니다.
    - set: 속성의 값을 설정할 때 호출되는 함수를 정의합니다. 예를 들어, `obj.name.set = function(value) { this._name = value; };`와 같이 속성의 값을 설정할 때 호출되는 함수를 정의할 수 있습니다.

    예를 들어, 다음 코드는 `obj.name` 속성을 정의하는 예입니다.

    #hostingforum.kr
    javascript
    
    var obj = {};
    
    Object.defineProperty(obj, 'name', {
    
      value: 'John',
    
      writable: false,
    
      enumerable: true,
    
      configurable: false,
    
      get: function() { return this._name; },
    
      set: function(value) { this._name = value; }
    
    });
    
    console.log(obj.name); // John
    
    obj.name = 'Jane';
    
    console.log(obj.name); // John
    
    


    이 예에서, `obj.name` 속성은 읽기 전용 속성이며, 값을 변경할 수 없도록 정의되어 있습니다. 속성의 값을 읽을 때 호출되는 함수는 `get` 함수이며, 속성의 값을 설정할 때 호출되는 함수는 `set` 함수입니다.

    2025-07-13 17:15

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

검색

게시물 검색