*WeakSet은 *
참조를 가지고 있는 객체형태만 저장 가능하다.
저장된 객체가 더이상의 참조를 가지지 않을때는 가비지컬렉션의 대상이 된다.
객체 관련 된 것을 넣을때 weakSet을 사용 하면 좋다.
참조를 하지 않는 객체가 들어있다면 자동으로 없애준다.
객체의 형태만 따로 관리 해준다.
객체만 관리할 경우 weekSet을 사용하는 것이 좋다.
//객체형태를 중복없이 저장하려 할 때 유용한 WeakSet let arr = [1, 2, 3, 4]; let arr2 = [5, 6, 7, 8]; let obj = {arr, arr2}; let ws = new WeakSet(); wa.add(arr); ws.add(arr2); ws.add(obj); arr = null; console.log(ws.has(arr)); //이 때, ws 자체를 콘솔에 찍어보면 arr 값이 그대로인 것처럼 보이지만, .has로 보면 arr이 없어서 false로 나오게 된다. //arr 객체의 reference를 잃고 가비지 컬렉션으로 처리되어 더 이상 쓸모없어졌기 때문이다.
WeakMap으로 class의 instance 변수 보호하기 - Javascript ES6 (0) | 2019.04.19 |
---|---|
Map 과 WeakMap - Javascript ES6 (0) | 2019.04.19 |
Set으로 유니크한 배열 생성하기 - Javascript ES6 (0) | 2019.04.19 |
Destructuring Object - Javascript ES6 (0) | 2019.04.19 |
Destructuring Array - Javascript ES6 (0) | 2019.04.19 |
댓글 영역