👋 WeakMap 오브젝트 메소드: get(), set(), has(), delete()


1. get()

  • WeakMap 인스턴스에서

    • key 값이 같은 value 반환
    • 존재하지 않으면 undefined 반환
    const fn = () => {};
    const obj = new WeakMap([[fn, '함수']]);
    
    console.log(obj.get(fn)); // 함수

2. set()

  • WeakMap 인스턴스에 key, value 설정

    const fn = function(){};
    const obj = new WeakMap([
    	[fn, "함수]
    ]);
    
    console.log(obj.get(fn));  // 함수
    
    obj.set(fn, "함수 변경");
    console.log(obj.get(fn));  // 함수 변경
  • 첫 번째 파라미터에 key로 사용할 오브젝트 작성

    • string과 같은 프리미티브 값 사용 불가
  • 두 번째 파라미터는 값

    • 첫 번째 파라미터의 오브젝트에 대한 값?
    • 오브젝트 구분 등의 용도, 오브젝트에 따라 연동하는 함수 등록

3. has()

  • WeakMap 인스턴스에서

    • key의 존재 여부 반환
    • 존재하면 true, 아니면 false 반환
    const obj = {};
    const weakObj = new WeakMap([[obj, '오브젝트']]);
    
    console.log(weakObj.has(obj)); // true

4. delete()

  • WeakMap 인스턴스에서

    • key와 일치하는 entry 삭제
    const fn = function () {};
    const obj = new WeakMap([[fn, '함수']]);
    
    console.log(obj.delete(fn)); // true
    console.log(obj.has(fn)); // false
    • 삭제를 성공하면 true 반환
    • 삭제를 실패하면 false 반환