Skip to content

Commit 142cf43

Browse files
authored
Merge pull request #278 from BySly/patch-2
Update article.md at Set/Map
2 parents c81fa28 + 31e13ca commit 142cf43

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

1-js/10-es-modern/10-set-map/article.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ set.forEach((value, valueAgain, set) => {
203203

204204
## WeakMap и WeakSet
205205

206-
`WeakSet` -- особый вид `Set` не препятствующий сборщику мусора удалять свои элементы. То же самое -- `WeakMap` для `Map`.
206+
`WeakSet` -- особый вид `Set`, не препятствующий сборщику мусора удалять свои элементы. То же самое -- `WeakMap` для `Map`.
207207

208208
То есть, если некий объект присутствует только в `WeakSet/WeakMap` -- он удаляется из памяти.
209209

@@ -248,7 +248,7 @@ activeUsers.splice(0, 1); // Петя более не активный поль
248248

249249
У WeakMap есть ряд ограничений:
250250

251-
- Только объекты в качестве ключей.
251+
- Только объекты в качестве ключей.
252252
- Нет свойства `size`.
253253
- Нельзя перебрать элементы итератором или `forEach`.
254254
- Нет метода `clear()`.
@@ -261,7 +261,7 @@ activeUsers.splice(0, 1); // Петя более не активный поль
261261

262262
То же самое относится и к `WeakSet`: можно добавлять элементы, проверять их наличие, но нельзя получить их список и даже узнать количество.
263263

264-
Эти ограничения могут показаться неудобными, но по сути они не мешают `WeakMap/WeakSet` выполнять свою основную задачу -- быть "вторичным" хранилищем данных для объектов, актуальный список которых (и сами они) хранятся в каком-то другом месте.
264+
Эти ограничения могут показаться неудобными, но, по сути, они не мешают `WeakMap/WeakSet` выполнять свою основную задачу -- быть "вторичным" хранилищем данных для объектов, актуальный список которых (и сами они) хранится в каком-то другом месте.
265265

266266
## Итого
267267

@@ -272,6 +272,4 @@ activeUsers.splice(0, 1); // Петя более не активный поль
272272

273273
К примеру, в обычном объекте `Object` нельзя использовать "совершенно любые" ключи. Есть встроенные методы, и уж точно есть свойство с названием `__proto__`, которое зарезервировано системой. Если название ключа даётся посетителем сайта, то он может попытаться использовать такое свойство, заменить прототип, а это, при запуске JavaScript на сервере, уже может привести к серьёзным ошибкам.
274274

275-
- `WeakMap` и `WeakSet` -- "урезанные" по функционалу варианты `Map/Set`, которые позволяют только "точечно" обращаться к элементам (по конкретному ключу или значению). Они не препятствуют сборке мусора, то есть если ссылка на объект осталась только в `WeakSet/WeakMap` -- она будет удалена.
276-
277-
275+
- `WeakMap` и `WeakSet` -- "урезанные" по функционалу варианты `Map/Set`, которые позволяют только "точечно" обращаться к элементам (по конкретному ключу или значению). Они не препятствуют сборке мусора, то есть, если ссылка на объект осталась только в `WeakSet/WeakMap` -- она будет удалена.

0 commit comments

Comments
 (0)