개발자 Q&A

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

2025.04.18 21:08

WeakMap::offsetUnset의 사용법에 대해 질문합니다.

목록
  • CSS마법사 3일 전 2025.04.18 21:08
  • 57
    1
저는 JavaScript의 WeakMap::offsetUnset 메서드를 사용하여 약한 참조를 삭제하는 방법을 공부하고 있지만, 조금 혼란이 있습니다.

WeakMap::offsetUnset은 약한 참조를 삭제할 때 사용하는 메서드라고 알고 있습니다. 하지만, 이 메서드는 정확히 어떻게 작동하는지 이해가 잘 안 가고 있습니다.

예를 들어, 다음 코드를 보겠습니다.

javascript

const weakMap = new WeakMap();

const obj = { name: 'John' };

weakMap.set(obj, 'value');



weakMap.offsetUnset(obj);



console.log(weakMap.has(obj)); // 이 출력값은 무엇일까요?



obj를 삭제한 후에도 weakMap에 obj가 여전히 포함되어 있는지 궁금합니다.

이 메서드가 정확히 어떤 역할을 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  3일 전



    WeakMap::offsetUnset 메서드는 약한 참조를 삭제하는 메서드입니다. 약한 참조는 WeakMap에 저장된 키가 garbage collection에 의해 자동으로 삭제되는 것을 의미합니다.

    위의 예제에서 obj를 삭제한 후에도 weakMap에 obj가 포함되어 있는지 확인하고 싶습니다.

    obj를 삭제한 후, weakMap에 obj가 여전히 포함되어 있는지 확인하려면, obj가 weakMap에 저장된 키가 아니면, obj가 garbage collection에 의해 삭제된 후에도 weakMap에 obj가 포함되어 있는지 확인할 수 있습니다.

    다음은 예제를 통해 확인할 수 있습니다.

    #hostingforum.kr
    javascript
    
    const weakMap = new WeakMap();
    
    const obj = { name: 'John' };
    
    weakMap.set(obj, 'value');
    
    
    
    delete obj;
    
    console.log(weakMap.has(obj));  // false
    
    console.log(weakMap.get(obj));  // undefined
    
    
    
    // obj가 garbage collection에 의해 삭제된 후에도
    
    obj = null;
    
    console.log(weakMap.has(obj));  // false
    
    console.log(weakMap.get(obj));  // undefined
    
    
    
    // 약한 참조가 삭제된 후에도
    
    weakMap.offsetUnset(obj);
    
    console.log(weakMap.has(obj));  // false
    
    console.log(weakMap.get(obj));  // undefined
    
    


    위의 예제에서, obj를 삭제한 후, weakMap에 obj가 포함되어 있는지 확인한 결과는 false입니다. 또한, obj가 garbage collection에 의해 삭제된 후에도, weakMap에 obj가 포함되어 있는지 확인한 결과는 false입니다.

    WeakMap::offsetUnset 메서드는 약한 참조를 삭제하는 메서드입니다. 약한 참조가 삭제된 후에도, weakMap에 약한 참조가 포함되어 있지 않습니다.

    2025-04-18 21:09

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

검색

게시물 검색