
offsetGet 메서드는 WeakMap 객체에서 특정 키에 해당하는 값을 반환하는 메서드입니다. 이 메서드는 WeakMap의 특성상 키가 참조되지 않으면 undefined로 반환됩니다.
키가 참조되지 않아 undefined를 반환할 때, 이 undefined는 실제로 null과 같은 것이 아닙니다. undefined는 null과 다른 값으로, null은 변수에 할당된 값을 나타내는 반면 undefined는 변수가 할당되지 않은 상태를 나타냅니다.
offsetGet 메서드는 WeakMap의 동작 원리에 대해 더 자세히 이해하기 위해서는 WeakMap의 내부 구조를 이해해야 합니다. WeakMap은 객체를 키로 사용할 수 있는 Map의 하위 클래스입니다. WeakMap의 키는 객체 참조로 저장되며, 키가 참조되지 않으면 GC(Garbage Collector)에 의해 자동으로 삭제됩니다.
키가 참조되지 않아 undefined를 반환하는 경우, 이 undefined는 WeakMap 내부적으로 어떻게 관리되는지에 대한 자세한 내용은 ECMAScript 스펙을 참조해야 합니다. 하지만, 일반적으로는 undefined는 WeakMap 내부적으로 관리되지 않고, GC에 의해 자동으로 삭제됩니다.
offsetGet 메서드를 사용할 때, 키가 참조되지 않으면 undefined를 반환하는 것을 고려하여 코드를 작성해야 합니다. 예를 들어, 키가 참조되지 않은 경우 null 또는 기본값을 반환하는 코드를 작성할 수 있습니다.
#hostingforum.kr
javascript
const weakMap = new WeakMap();
const obj = { key: 'value' };
weakMap.set(obj, 'value');
console.log(weakMap.get(obj)); // "value"
obj = null; // 키가 참조되지 않음
console.log(weakMap.get(obj)); // undefined
위의 예제에서, 키가 참조되지 않아 undefined를 반환하는 것을 볼 수 있습니다. 이 undefined는 실제로 null과 같은 것이 아니며, WeakMap 내부적으로 관리되지 않습니다.
2025-05-02 01:21