GarbageCollection (GC04)
1: const activeUsers = new WeakSet();
2: function addUser(user) {
3: activeUsers.add(user);
4: console.log(`User ${user.name} added`); // Example log message
5: }
6: function removeUser(user) {
7: activeUsers.delete(user);
8: console.log(`User ${user.name} removed`); // Example log message
9: }
10: function processActiveUsers(users) {
11: users.forEach(user => {
12: if (activeUsers.has(user)) {
13: console.log(`User ${user.name} is currently active.`); // perform some operation with active user.
14: } else {
15: console.log(`User ${user.name} is not currently active.`); // perform another operation if user isn't active
16: }
17: });
18: }
19: const user1 = { name: 'Bob' };
20: addUser(user1);
21: processActiveUsers([user1]); // Bob is active
22: removeUser(user1);
23: processActiveUsers([user1]); // Bob isn't active
WeakSet stores only objects, no primitive values // Now even if external array of users isn't cleared, `user1` can be garbage collected
GarbageCollection context:
ES6 context:
- (2024) Notes about JS Closures. #ES6
- (2024) Notes about Javascript asynchronous programming. #ES6
- (2022) Modern Javascript books #ES6 #Doc
- (2021) JS learning start point #ES6
- (2021) Maximilian Schwarzmüller Javascript lecture #ES6
- (2021) Javascript interview question from Happy Rawat #ES6
- (2021) Javascript tests #ES6
- (2016) New unique features of Javascript (updated). #ES6
Comments (
)

Link to this page:
http://www.vb-net.com/JavascriptES6/GC04.htm
|