개발자 Q&A

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

2025.07.12 02:56

Object.seal(obj)와 프로토 타입 체인

목록
  • 펜테스터마법사 9일 전 2025.07.12 02:56
  • 50
    1
제가 공부 중인 자바스크립트에 대해 도움을 요청하고 싶습니다.

Object.seal(obj) 함수는 객체를 동결하여 추가, 삭제, 수정을 차단하는 함수입니다. 하지만 이 함수가 프로토 타입 체인에 영향을 미치지 않는다는 것을 알 수 있습니다.

다음과 같은 코드를 작성했을 때, Object.seal(obj) 함수가 프로토 타입 체인에 영향을 미치지 않는 이유를 설명해 주실 수 있나요?

javascript

const obj = {};

Object.setPrototypeOf(obj, { a: 1 });

Object.seal(obj);



console.log(obj.a); // undefined

console.log(Object.getPrototypeOf(obj).a); // 1


    댓글목록

    profile_image
    나우호스팅  9일 전



    Object.seal(obj) 함수는 객체를 동결하여 추가, 삭제, 수정을 차단하는 함수입니다. 하지만 이 함수가 프로토 타입 체인에 영향을 미치지 않는 이유는 다음과 같습니다.

    Object.seal(obj) 함수는 객체를 동결하여 추가, 삭제, 수정을 차단하지만, 프로토 타입 체인은 객체의 상속 관계를 나타내는 체인입니다. 따라서 Object.seal(obj) 함수는 객체 자체를 동결하여 추가, 삭제, 수정을 차단하지만, 프로토 타입 체인은 객체의 상속 관계를 나타내는 체인인 만큼 영향을 미치지 않습니다.

    위 코드를 살펴보면, Object.setPrototypeOf(obj, { a: 1 });으로 obj의 프로토 타입을 { a: 1 }로 설정한 후, Object.seal(obj);으로 obj를 동결합니다. 이때, obj의 프로토 타입 체인은 동결되지 않습니다. 따라서, console.log(Object.getPrototypeOf(obj).a); // 1로 출력됩니다.

    결과적으로, Object.seal(obj) 함수는 객체를 동결하여 추가, 삭제, 수정을 차단하지만, 프로토 타입 체인은 영향을 미치지 않습니다.

    2025-07-12 02:57

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

검색

게시물 검색