[자바스크립트 ES6+ 기본] 24. WeakSet 오브젝트

WeakSet 오브젝트

  • Set 오브젝트와 차이

    • 오브젝트만 value 값으로 사용할 수 있음
    • number 등의 프리미티브 타입 사용 불가
  • 개념은 WeakMap과 같음

    • value만 작성하는 것이 다름
    • value의 참조가 바뀌면 GC 대상
  • 지원 메소드

    • has(), add(), delete()

new WeakSet()

  • WeakSet 인스턴스 생성, 반환

  • 파라미터

    • 대괄호[] 안에 오브젝트 작성
const empty = new WeakSet();

const sports = {};
const obj = new WeakSet([
  sports
]);

has()

  • WeakSet 인스턴스에서
    • value의 존재 여부 반환
    • 존재하면 true, 아니면 false 반환
const fn = () => {};
const obj = new WeakSet([
  fn
]);
log(obj.has(fn));

// true

add()

  • WeakSet 인스턴스에서 value 설정
    • 파라미터에 value로 설정될 오브젝트 작성
const obj = new WeakSet();
const fn = () => {};
obj.add(fn);
log(obj.has(fn));

// true

delete()

  • WeakSet 인스턴스에서
    • value와 일치하는 엘리먼트 삭제
    • 삭제 성공이면 ture 반환
    • 삭제를 실패하면 false 반환
const fn = () => {};
const obj = new WeakSet([
  fn
]);
log(obj.delete(fn));
log(obj.has(fn));

// true
// false

좋은 웹페이지 즐겨찾기