상세 컨텐츠

본문 제목

WeakSet으로 효과적인 객체 타입 저장 - Javascript ES6

Programming/Concept

by 쌩우 2019. 4. 19. 13:18

본문

*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를 잃고 가비지 컬렉션으로 처리되어 더 이상 쓸모없어졌기 때문이다.


관련글 더보기

댓글 영역