Я читал о lit- html и как это работает здесь .
Но я не мог понять, как они могут использовать аргумент strings
в качестве ключа кэша. Я читал о Map в MDN, но я не нашел ничего, что объясняет, как Map get
и set
работает.
Мой вопрос, как аргумент strings
может быть использован в качестве ключа. В основном, как Map хранит ключи, потому что ключи могут быть любыми.
// Store how many times we've seen each literal
let counts = new Map();
// A template tag that updates the count storage and longs the count
let count = (strings) => {
// The strings object is our Map key
let c = (counts.get(strings) || 0) + 1;
counts.set(strings, c);
console.log(`literal ${strings.join('')} seen ${c} time(s)`);
};
// Two functions that evaluate to different tagged literals
let f = (text) => count`abc`;
let g = (text) => count`def`;
f();
f();
g();