Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

Javascript에 weakMap이 필요한 이유는 무엇입니까?

<시간/>

WeakMap 개체는 키가 약하게 참조되는 키/값 쌍의 모음입니다. 키는 객체여야 하며 값은 임의의 값일 수 있습니다.

위키피디아에 따르면 약한 참조는 강한 참조와 달리 가비지 수집기가 수집하는 참조 객체를 보호하지 않는 참조입니다. 약한 참조로만 참조되는 개체("객체에 도달하는 모든 참조 체인에는 링크로 하나 이상의 약한 참조가 포함됨")는 약한 참조로 간주되며 연결할 수 없는 것으로 처리될 수 있으므로 언제든지 수집될 수 있습니다.

약한 맵을 사용하여 해결할 수 있는 메모리 누수를 일으킬 수 있는 일부 사용 사례 -

  • 특정 개체에 대한 비공개 데이터를 유지하고 지도를 참조하는 사람들에게만 액세스 권한을 부여합니다.

  • 라이브러리 개체에 대한 데이터를 변경하거나 오버헤드를 발생시키지 않고 유지합니다.

  • JS 엔진이 동일한 유형의 객체에 사용하는 숨겨진 클래스에 문제가 발생하지 않도록 해당 유형의 많은 객체가 존재하는 작은 객체 세트에 대한 데이터를 유지합니다.

  • 브라우저에서 DOM 노드와 같은 호스트 개체에 대한 데이터를 유지합니다.

  • 외부에서 개체에 기능 추가.