我正在阅读有关 lit-html 及其工作原理的信息。
但我不明白他们如何将strings
参数用作缓存键。我已经在 mdn 中阅读了有关 Map 的信息,但我没有找到任何解释 Mapget
和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();