👋 WeakSet 오브젝트 개요, new WeakSet(), has(), add(), delete()
1. WeakSet 오브젝트
-
Set오브젝트와 차이- 오브젝트만
value값으로 사용할 수 있음 number등의 프리미티브 타입 사용 불가
- 오브젝트만
-
개념은
WeakMap과 같음value만 작성하는 것이 다름value의 참조가 바뀌면GC대상
-
지원 메소드
has(),add(),delete()
2. new WeakSet()
WeakSet인스턴스 생성, 반환-
파라미터
- 대괄호
[ ]안에 오브젝트 작성
const empty = new WeakSet(); const sports = {}; const obj = new WeakSet([ sports ]}; // 1. 파라미터를 작성하지 않아도 됨 // 2. new 연산자를 사용 함 - 대괄호
3. has()
-
WeakSet인스턴스에서value의 존재 여부 반환- 존재하면
true, 아니면false반환
const fn = () => {}; const obj = new WeakSet([ fn ]}; console.log(obj.has(fn)); // true - 존재하면
4. add()
-
WeakSet인스턴스에value설정- 파라미터에
value로 설정될 오브젝트 작성
const obj = new WeakSet(); const fn = () => {}; obj.add(fn); console.log(obj.has(fn)); // true - 파라미터에
5. delete()
-
WeakSet인스턴스에서value와 일치하는 엘리먼트 삭제- 삭제 성공이면
true반환 - 삭제를 실패하면
false반환
const fn = () => {}; const obj = new WeakSet([fn]); console.log(obj.delete(fn)); // true console.log(obj.has(fn)); // false - 삭제 성공이면