What pattern does this code demonstrate with WeakMap?
const privateData = new WeakMap();
class User {
constructor(name) {
privateData.set(this, { name, loginAttempts: 0 });
}
get name() {
return privateData.get(this).name;
}
incrementLoginAttempts() {
const data = privateData.get(this);
data.loginAttempts++;
}
}
This code demonstrates private field implementation: 1) WeakMap is used to store private data associated with class instances, 2) The private data is not directly accessible from outside the class, 3) Each instance's private data is automatically garbage collected when the instance is destroyed, 4) This pattern predates JavaScript's native private fields (#) syntax, 5) The WeakMap ensures no memory leaks occur even if instances are destroyed, 6) This approach provides true privacy as the data is inaccessible without access to the WeakMap, 7) The pattern scales well with multiple instances and complex private data, 8) It demonstrates a practical use case for WeakMap in class design.