728x90
let messages = [
{text: "Hello", from: "John"},
{text: "How goes?", from: "John"},
{text: "See you soon", from: "Alice"}
];
const messageReadDates = new WeakMap();
messageReadDates.set(messages[0], new Date());
messageReadDates.set(messages[1], new Date());
console.log(messageReadDates.get(messages[0]));
console.log(messageReadDates.get(messages[1]));
728x90
// 1. WeakSet
let messages = [
{text: "Hello", from: "John"},
{text: "How goes?", from: "John"},
{text: "See you soon", from: "Alice"}
];
const readMessages = new WeakSet();
// two messages have been read
readMessages.add(messages[0]);
readMessages.add(messages[1]);
// readMessages has 2 elements
// ...let's read the first message again!
readMessages.add(messages[0]);
// readMessages still has 2 unique elements
// answer: was the message[0] read?
console.log("Read message 0: " + readMessages.has(messages[0])); // true
messages.shift();
// now readMessages has 1 element (technically memory may be cleaned later)
// 2. Symbol
const isRead = Symbol("isRead");
messages[0][isRead] = true;

+ Recent posts