Как карта хранит ключи - PullRequest
       15

Как карта хранит ключи

1 голос
/ 29 января 2020

Я читал о 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();
...