모두 key: value 데이터 구조
WeakMap은 key로 Object, value로 아무거나
WeakMap은 키 객체의 약한 참조만 가지므로 가비지 컬렉션에 포함될 수 있고 이에 키 참조가 사라짐 but key 열거 불가능
WeakMap
의 키로 쓰인 객체는 가비지 컬렉션 대상이 된다. 프로그램 내 객체에 대한 참조가 WeakMap
을 제외하고 존재하지 않는다면, 해당 객체는 가비지로 수거된다.
따라서 메모리 누수가 발생하기 좋은 부분에 사용하기 용이하다.
참고
https://ui.toast.com/weekly-pick/ko_20210901
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map