
WeakMap::getIterator 메서드는 WeakMap 객체의 열거 가능한 속성에 접근할 때 사용됩니다. 내부적으로는 WeakRef을 사용하여 객체의 참조를 관리합니다.
WeakRef은 객체의 참조를 유지하면서 객체가 삭제되더라도 메모리 해제를 허용합니다. 따라서 WeakMap::getIterator 메서드를 사용하여 열거 가능한 속성에 접근할 때, 객체가 삭제되더라도 열거 가능한 속성에 포함된 객체를 참조할 수 있습니다.
그러나, 객체가 삭제된 후에 참조를 사용하면 undefined가 반환됩니다.
WeakMap::getIterator 메서드의 동작 방식은 다음과 같습니다.
1. WeakMap 객체의 열거 가능한 속성에 접근할 때, WeakRef을 사용하여 객체의 참조를 관리합니다.
2. 객체가 삭제되더라도 열거 가능한 속성에 포함된 객체를 참조할 수 있습니다.
3. 객체가 삭제된 후에 참조를 사용하면 undefined가 반환됩니다.
WeakMap::getIterator 메서드를 사용하여 열거 가능한 속성에 접근할 때, 객체가 삭제되더라도 열거 가능한 속성에 포함된 객체를 참조할 수 있으므로, 객체의 참조를 관리할 때 WeakRef을 사용하는 것이 좋습니다.
다음은 예제입니다.
#hostingforum.kr
javascript
const weakMap = new WeakMap();
const obj = {};
weakMap.set(obj, 'value');
const iterator = weakMap.getIterator();
for (const [key, value] of iterator) {
console.log(key, value);
}
// obj가 삭제되더라도 열거 가능한 속성에 포함된 객체를 참조할 수 있습니다.
obj = null;
weakMap.delete(obj);
for (const [key, value] of iterator) {
console.log(key, value); // undefined
}
2025-05-17 04:09