WeakMap.has() 메서드란?
WeakMap.has() 메서드는 WeakMap 객체 안에 특정 요소가 존재하는지 확인할 때 사용하는 메서드입니다. 이 메서드는 지정된 키(key)를 가진 요소가 WeakMap 객체에 존재하는지 여부를 나타내는 boolean(불리언) 값을 반환합니다. 해당 키가 존재하면 true가, 존재하지 않으면 false가 결과로 출력됩니다.
문법(Syntax)
weakMap.has(obj);
has() 메서드는 객체(object)를 매개변수(parameter)로 전달받아, 해당 객체가 WeakMap에 존재하는지 검사한 뒤 그 결과를 boolean 값으로 반환합니다.
예제(Example)
다음 예제에서는 먼저 'new' 키워드를 사용해 WeakMap을 생성합니다. 이후 두 개의 객체인 "object1"과 "object2"를 만들고, object1만 WeakMap에 할당(set)합니다. 이 상태에서 두 객체에 각각 has() 메서드를 호출하면, WeakMap에 등록되어 있는 object1은 true를 반환하고, 등록되지 않은 object2는 false를 반환합니다. 실행 결과는 아래와 같습니다.
<html>
<body>
<script>
var weakmap = new WeakMap();
var object1 = {
"product" : "Tutorix"
};
var object2 = {
"Greet" : "Hello"
};
weakmap.set(object1);
document.write(weakmap.has(object1));
document.write("</br>");
document.write(weakmap.has(object2));
</script>
</body>
</html>실행 결과(Output)
true false
참고 사항
WeakMap의 키는 반드시 객체여야 합니다. 문자열이나 숫자 같은 원시값(primitive value)은 키로 사용할 수 없으며, 사용 시 TypeError가 발생합니다. 또한 WeakMap에 저장된 객체에 대한 참조가 더 이상 없으면 가비지 컬렉터(garbage collector)에 의해 자동으로 메모리에서 제거될 수 있기 때문에, 메모리 누수 방지와 효율적인 메모리 관리가 필요한 상황에서 유용하게 활용됩니다.