
WeakMap::offsetSet을 사용하여 key-value 쌍을 추가할 때, value를 중복으로 추가할 수 있는 경우는 다음과 같습니다.
1. 동일한 key에 다른 value를 추가할 때: WeakMap::offsetSet은 key가 동일한 경우에만 value를 중복으로 추가합니다. 예를 들어, `weakMap.set('key', 'value1');` 이후 `weakMap.offsetSet('key', 'value2');`를 호출하면 'value2'가 추가됩니다.
2. key가 undefined 또는 null일 때: WeakMap::offsetSet은 key가 undefined 또는 null인 경우에 value를 중복으로 추가합니다. 예를 들어, `weakMap.set(undefined, 'value1');` 이후 `weakMap.offsetSet(undefined, 'value2');`를 호출하면 'value2'가 추가됩니다.
3. key가 symbol일 때: WeakMap::offsetSet은 key가 symbol인 경우에 value를 중복으로 추가합니다. 예를 들어, `weakMap.set(Symbol('key'), 'value1');` 이후 `weakMap.offsetSet(Symbol('key'), 'value2');`를 호출하면 'value2'가 추가됩니다.
4. key-value 쌍이 이미 존재하지 않을 때: WeakMap::offsetSet은 key-value 쌍이 이미 존재하지 않는 경우에 value를 중복으로 추가합니다. 예를 들어, `weakMap.offsetSet('key', 'value');`를 호출하면 'value'가 추가됩니다.
5. key-value 쌍이 이미 존재하고 value가 null일 때: WeakMap::offsetSet은 key-value 쌍이 이미 존재하고 value가 null인 경우에 value를 중복으로 추가합니다. 예를 들어, `weakMap.set('key', null);` 이후 `weakMap.offsetSet('key', 'value');`를 호출하면 'value'가 추가됩니다.
위의 경우를 제외한 나머지 경우에는 value를 중복으로 추가할 수 없습니다.
2025-05-24 22:49