Описание тега weakmap

Слабая карта - это структура данных, состоящая из пар ключ / значение, в которой ключи назначаются с использованием слабых ссылок, что означает, что привязки каждой пары будут удалены после удаления ссылок на сам ключ. если вместо этого вы используете WeakHashMap, объекты покинут вашу карту, как только они перестанут использоваться остальной частью вашей программы, что является желаемым поведением.
1 ответ

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

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

Поменялась ли сборка мусора в Map недавно?

Основное различие между Map и WeakMap (как я и думал) в том, что: Если мы сохранили объект в Map, а затем позже на этот объект не ссылаются в других местах, этот объект все равно не будет включен в процесс сбора мусора, и мы все равно сможем получит…
05 авг '17 в 16:58
2 ответа

WeakMap перевернутый

Есть ли способ создать WeakMap из любых других слабых ссылок в Javascript для хранения пар ключ-значение, где ключ - String/Number, а значение - Object. Ссылка должна работать примерно так: const wMap = new WeakRefMap(); const referencer = {child: n…
19 июл '17 в 19:03
1 ответ

JavaScript WeakMap продолжает ссылаться на gc'ed объекты

Я испытываю слабые карты JavaScript, после того, как я попробовал этот код в консоли разработчика Google Chrome, запустив с параметром --js-flags="- expose-gc", я не понимаю, почему у карты слабых карт есть ссылка на ab, если a gc'ed. var a = {liste…
0 ответов

Каковы хорошие примеры использования JS WeakSet?

Оба JavaScript WeakSet а также WeakMap Стандартные встроенные объекты ES2015 - это структуры JS, с которыми у меня мало опыта использования. Я знаю, что слабая часть WeakMap / WeakSet относится к ссылкам в тех объектах, которые удерживаются слабо. Н…
1 ответ

Доступ к закрытым переменным, определенным с помощью WeakMap внутри производного класса

Я использую общий шаблон WeakMaps для эмуляции частных переменных внутри классов es6, но я не могу найти способ иметь "защищенные" переменные, то есть переменные, которые являются частными и к которым можно получить доступ через производные классы, …
1 ответ

Будет ли "круговая" ссылка рассматриваться как "достижимость" для WeakMap?

function f() { const w = new WeakMap(); const o = {}; w.set(o, { v: o }); return w; } const weakMap = f(); Для данного кода, единственным weakMap предмет считается достижимым или нет? Следовательно, это будет мусор или нет? PS: этот вопрос задается …
21 сен '15 в 03:53
8 ответов

Каковы фактические использования ES6 WeakMap?

Каковы фактические использования WeakMap структура данных введена в ECMAScript 6? Так как ключ слабой карты создает сильную ссылку на его соответствующее значение, гарантируя, что значение, которое было вставлено в слабую карту, никогда не исчезнет,…
02 апр '15 в 12:39
4 ответа

Понимание слабых карт

ECMAScript 6 представляет слабые карты, доступные в Node.JS v0.11.3 с --harmony флаг. Учтите следующее. let weakMap = WeakMap(); let key = []; let rubbish = 'fish cans'; weakMap.set(key, rubbish); rubbish = 'empty bottle'; // Prints "fish cans" cons…
09 июл '13 в 10:18
5 ответов

В чем разница между ES6 Map и WeakMap?

Глядя на эту и эту MDN-страницы, кажется, что единственное различие между Maps и WeakMaps - отсутствующее свойство "size" для WeakMaps. Но так ли это? Какая разница между ними?
1 ответ

Сможет ли WeakMap спасти меня от утечки памяти для родительских / дочерних отношений?

У меня есть отношения родитель / ребенок, которые выглядят так. parent.children = [child]; child.parent = parent; Будет ли это причиной утечки памяти, когда все другие ссылки на parent а также child удалены? Только оставшиеся ссылки будут друг с дру…
05 май '16 в 01:08
1 ответ

Использование элемента в качестве ключа к хэшу в JavaScript

Я хочу создать хэш с элементами DOM в качестве ключей. Это иллюстрируется следующим кодом: var hash = {}; var set = function(element, value) { hash[element] = value; }; var get = function(element) { return hash[element]; }; set(document.getElementBy…
23 июн '13 в 20:51
2 ответа

Почему ES6 WeakMap не будет перечисляемым?

До моего повторного входа в JavaScript (и связанных с ним) я сделал много ActionScript 3, и там у них был объект Dictionary, который имел слабые ключи, как и в будущем WeakMap; но версия AS3 все еще была перечисляемой как обычный универсальный объек…
11 дек '13 в 01:07
1 ответ

Использование узла DOM в качестве ключа в WeakMap

При работе с WeakMap Я столкнулся со сценарием, в котором я нахожу довольно загадочным: скажем, у меня есть DOM-узел с некоторыми данными, которые я хочу сохранить, и я храню его в WeakMap использование самого элемента / узла в качестве ключа и прои…
07 авг '18 в 22:24
2 ответа

Сборка мусора в коллекциях Map и WeakMap в es6

Я читал описание WeakMap и там говорилось: В собственных WeakMaps ссылки на ключевые объекты хранятся "слабо", что означает, что они не предотвращают сборку мусора в случае, если не будет другой ссылки на объект. Прочитав это, я понял, что WeakMaps …
2 ответа

Нужна Слабая Карта (а, б) -> с

У меня есть запомненный fn, где fn запоминается двумя входными ссылками: let NewRefCursor = memoized( (deref, swap) => refToHash(deref) + refToHash(swap), // memoizer identity fn (deref, swap) => new RefCursor(deref, swap)); // the function we…
10 дек '15 в 13:15
3 ответа

Что такое слабые карты ECMAScript 6?

Прочитав это описание: http://wiki.ecmascript.org/doku.php?id=harmony:weak_maps Я пытаюсь овладеть этим, но я не понимаю общую картину. О чем это все? Похоже, что поддерживается в Firefox 6: http://kangax.github.com/es5-compat-table/non-standard/
1 ответ

Когда бы вы использовали карту поверх WeakMap, когда у вас есть объекты в качестве ключей?

Несколько раз, когда я использовал объекты в качестве ключей на карте, я делал это для хранения метаданных об этом конкретном объекте. Я всегда использовал WeakMap Это связано с тем, что запись на карте автоматически собирает мусор, когда объект, ко…
02 июн '16 в 15:26
1 ответ

Не в состоянии понять поведение WeakMap в ECMA6

Я столкнулся со странным сценарием во время игры с WeakMap в ECMA6. Я пишу класс, который выглядит следующим образом 'use strict'; class WeekMaptest { constructor(options){ console.log("constructor"); this.weekMap = new WeakMap(); this._init(options…
01 ноя '15 в 09:02
4 ответа

Как перебрать слабую карту?

Слабая карта JavaScript ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) не позволяет получить ключ, длину или размер в зависимости от конструкции. Возможно ли, тем не менее, зацикливать записи каким-то обр…