Implement a `createPrivateData()` that uses WeakMap to store private data for objects.
Problem Statement
Implement a `createPrivateData()` that uses WeakMap to store private data for objects.
Complexity
Time Complexity: -
Space Complexity: -
Hints
š” Hint 1:
WeakMap allows using objects as keys without preventing garbage collection.
š” Hint 2:
Store private data in a WeakMap keyed by the object instance.
š” Hint 3:
const privates = new WeakMap(); return { set(obj, key, val), get(obj, key) };
ā
Solution:
```javascript
function createPrivateData() {
const privates = new WeakMap();
return {
set(obj, key, val) {
if (!privates.has(obj)) privates.set(obj, {});
privates.get(obj)[key] = val;
},
get(obj, key) {
return privates.has(obj) ? privates.get(obj)[key] : undefined;
}
};
}
```