Map과 WeakMap은 Set과는 차이점이 있다.
key와 value 구조
특정 객체의 부연 설명을 할 때 사용 가능
key에 적용한 객체에 null 할당 시 가비지 컬렉션으로 간주
WeakMap
WeakMap의 key는 오직 Object type만! Primitive type은 허용되지 않는다.(Symbol도 WeakMap key가 될 수 없다)
객체 정보만 넣을수 있다.
private 변수 만들기. 객체가 필요없어질 때에는 가비지컬렉션 대상이 됨.
Set 사용으로 모자라면 map을 사용
함수의 호출 횟수를 세는 WeakMap 활용을 해 보자.
let weakMap = new WeakMap(); let myFun = function(){}; //myFun 함수가 몇 번 실행 되었는지를 세 볼 것이다. weakMap.set(myFun, 0); //myFun을 key로 하고, value는 0인 값을 생성 let count = 0; for(let i = 0; i<10; i++){ count = weakMap.get(myFun); //getting value here count++; weakMap.set(myFun, count) } //이 후에, 객체 값을 null 처리하게 되면, 가비지 컬렉션 대상이 될 것임 myFun = null; console.log(weakMap.has(myFun)) // false
Set으로 로또 추첨기 만들기 - Javascript ES6 (0) | 2019.04.19 |
---|---|
WeakMap으로 class의 instance 변수 보호하기 - Javascript ES6 (0) | 2019.04.19 |
WeakSet으로 효과적인 객체 타입 저장 - Javascript ES6 (0) | 2019.04.19 |
Set으로 유니크한 배열 생성하기 - Javascript ES6 (0) | 2019.04.19 |
Destructuring Object - Javascript ES6 (0) | 2019.04.19 |
댓글 영역