본문 바로가기
Javascript

[ES6] WeakSet

by 개발자의 2019. 3. 27.

//


// set과의 차이는?

// 참조를 가지고 있는 객체만 저장이 가능하다.


let arr = [1,2,3,4];

let ws = new WeakSet();


ws.add(arr);

// ws.add(111);   // invalid type

// ws.add("111"); // invalid type

// ws.add(null);  // invalid type

// ws.add(function(){}) //유효함

console.log(ws);


//만약 객체가 널이되거나 필요가 없어지면 가비지 컬렉션 대상이 됩니다. 위크셋에서도 없어진다. 참조를 모니터링 한다고 봐야함.



let array1 = [1,2,3,4];

let array2 = [5,6,7,8];

let obj = [arr, arr2];

let weakset = new WeakSet();


weakset.add(array1);

weakset.add(array2);

weakset.add(obj);


array1 = null;

array2 = null;


console.log(weakset);

console.log(ws.has(array1), ws.has(array2));


// 참조를 잃으면 없다고 표출함.

// 위크셋에 객체형태를 중복되지 않고 보관하겠다. 자료구조를 다룰때 유용함.

// 컨스트럭터 프로토 타입안에 메소드를 밖에서 직접 부르는걸 방지할때 쓴다든지?


'Javascript' 카테고리의 다른 글

[ES6] WeakMap  (0) 2019.03.27