
WeakMap::offsetUnset 메서드는 약한 참조를 삭제하는 메서드입니다. 약한 참조는 WeakMap에 저장된 키가 garbage collection에 의해 자동으로 삭제되는 것을 의미합니다.
위의 예제에서 obj를 삭제한 후에도 weakMap에 obj가 포함되어 있는지 확인하고 싶습니다.
obj를 삭제한 후, weakMap에 obj가 여전히 포함되어 있는지 확인하려면, obj가 weakMap에 저장된 키가 아니면, obj가 garbage collection에 의해 삭제된 후에도 weakMap에 obj가 포함되어 있는지 확인할 수 있습니다.
다음은 예제를 통해 확인할 수 있습니다.
#hostingforum.kr
javascript
const weakMap = new WeakMap();
const obj = { name: 'John' };
weakMap.set(obj, 'value');
delete obj;
console.log(weakMap.has(obj)); // false
console.log(weakMap.get(obj)); // undefined
// obj가 garbage collection에 의해 삭제된 후에도
obj = null;
console.log(weakMap.has(obj)); // false
console.log(weakMap.get(obj)); // undefined
// 약한 참조가 삭제된 후에도
weakMap.offsetUnset(obj);
console.log(weakMap.has(obj)); // false
console.log(weakMap.get(obj)); // undefined
위의 예제에서, obj를 삭제한 후, weakMap에 obj가 포함되어 있는지 확인한 결과는 false입니다. 또한, obj가 garbage collection에 의해 삭제된 후에도, weakMap에 obj가 포함되어 있는지 확인한 결과는 false입니다.
WeakMap::offsetUnset 메서드는 약한 참조를 삭제하는 메서드입니다. 약한 참조가 삭제된 후에도, weakMap에 약한 참조가 포함되어 있지 않습니다.
2025-04-18 21:09