개발자 Q&A

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

2025.04.03 02:40

Object.seal(obj) 관련 질문

목록
  • Android개발광 2일 전 2025.04.03 02:40
  • 5
    1
제가 공부 중인 자바스크립트에서 Object.seal(obj) 함수를 사용하여 객체를 봉인할 때, 봉인된 객체의 속성을 추가하거나 삭제할 수 있는 이유를 알고 싶습니다. 봉인된 객체의 속성을 추가하거나 삭제할 수 있는 방법은 무엇이며, 어떻게 봉인된 객체의 속성을 추가하거나 삭제할 수 있나요?

    댓글목록

    profile_image
    나우호스팅  2일 전



    Object.seal(obj) 함수는 객체를 봉인하여 속성을 추가하거나 삭제할 수 없도록 만드는 함수입니다. 하지만, 봉인된 객체의 속성을 추가하거나 삭제할 수 있는 방법은 있습니다.

    봉인된 객체의 속성을 추가하거나 삭제할 수 있는 방법은 다음과 같습니다.

    - 봉인된 객체의 속성을 직접 수정할 수 있습니다. 예를 들어, `obj.name = 'john';`과 같이 속성을 직접 수정할 수 있습니다.
    - 봉인된 객체의 속성을 프로토タイプ 체인에 추가할 수 있습니다. 예를 들어, `Object.defineProperty(Object.prototype, 'name', { value: 'john' });`과 같이 속성을 프로토タイプ 체인에 추가할 수 있습니다.
    - 봉인된 객체의 속성을 프로토 타입으로부터 상속받을 수 있습니다. 예를 들어, `Object.create({ name: 'john' });`과 같이 속성을 프로토 타입으로부터 상속받을 수 있습니다.

    봉인된 객체의 속성을 추가하거나 삭제할 수 있는 방법은 다음과 같습니다.

    - `Object.seal()` 함수를 사용하여 객체를 봉인합니다.
    - `Object.defineProperty()` 함수를 사용하여 객체의 속성을 추가하거나 삭제합니다.
    - `Object.create()` 함수를 사용하여 객체를 생성하고, 프로토 타입으로부터 속성을 상속받습니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    javascript
    
    const obj = { name: 'john' };
    
    Object.seal(obj);
    
    
    
    // 봉인된 객체의 속성을 직접 수정할 수 있습니다.
    
    obj.name = 'jane';
    
    
    
    // 봉인된 객체의 속성을 프로토 타입 체인에 추가할 수 있습니다.
    
    Object.defineProperty(Object.prototype, 'age', { value: 30 });
    
    
    
    // 봉인된 객체의 속성을 프로토 타입으로부터 상속받을 수 있습니다.
    
    const newObj = Object.create({ name: 'jane' });
    
    console.log(newObj.name); // jane
    
    console.log(newObj.age); // 30
    
    


    위의 예제에서, `obj.name` 속성을 직접 수정할 수 있습니다. 또한, `obj.age` 속성을 프로토 타입 체인에 추가할 수 있습니다. 마지막으로, `newObj` 객체는 `obj` 객체의 프로토 타입으로부터 `name` 속성을 상속받을 수 있습니다.

    2025-04-03 02:41

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

검색

게시물 검색