Слабая карта в Javascript

Можете ли вы уточнить, почему логическое значение используется при добавлении объектов в WeakMaps в коде ниже. Я понимаю, что множество принимает два (ключ и значение) аргумента. Логические значения также выводятся на консоль... это мое сомнение...

Заранее спасибо.

const book1 = { title: 'Pride and Prejudice', author: 'Jane Austen' };
const book2 = { title: 'The Catcher in the Rye', author: 'J.D. Salinger' };
const book3 = { title: 'Gulliver\'s Travels', author: 'Jonathan Swift' };

const library = new WeakMap();
library.set(book1, true);
library.set(book2, false);
library.set(book3, true);

console.log(library);

WeakMap {Object {title: 'Pride and Prejudice', author: 'Jane Austen'} => true, Object {title: 'The Catcher in the Rye', author: 'J.D. Salinger'} => false, Object {title: 'Gulliver\'s Travels', author: 'Jonathan Swift'} => true}

1 ответ

WeakMap не просто хранить объекты (это Set - отличный от .set).

Это делает отношения между двумя вещами, ключом и ценностью. book1 используется в качестве ключа для значения true,

Прямо как на простом объекте var obj = { daysInWeek: 7 }, строка daysInWeek связан (сопоставлен!) с номером 7, чтобы obj["daysInWeek"] === 7,

Массивы тоже похожи - числа (индексы) сопоставляются со значениями; var arr = [ "praveen" ] карты номер 0 в строку "praveen", чтобы arr[0] === "praveen",

Mapс и WeakMapОни одинаковы, но ключи не ограничиваются строками или числами, они также могут быть объектами. Так library.get( book1 ) === true,

Другие вопросы по тегам