Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Функция Class жива! (https://javascript.ru/forum/offtopic/55353-funkciya-class-zhiva.html)

Erolast 28.04.2015 11:34

Цитата:

и получить утечки памяти?
Откуда там утечки?
Да, конечно же, я имел в виду свойства.

Цитата:

Да какая разница доступно свойство или нет, private и protected - это удобные слои абстракции, а не "защита от злобных хакеров", поэтому нет смысла заморачиваться с "безопасностью".
Бывает, что свойство должно изменяться только при определенных обстоятельствах, и, будучи открытым, станет рычагом для поломки кода, что как-то некрасиво.

nerv_ 28.04.2015 11:40

Цитата:

Сообщение от Erolast
Откуда там утечки?

если явно не вызывать деструктор, который будет удалять данные об экземпляре объекта из WeakMap, то они будут там лежать/накапливаться

Erolast 28.04.2015 11:42

Цитата:

если явно не вызывать деструктор, который будет удалять данные об экземпляре объекта из WeakMap, то они будут там лежать
Почему? Это ж как раз фишка WeakMap, что ссылки в его ключах не учитываются при сборке мусора.

kobezzza 28.04.2015 13:01

Цитата:

Бывает, что свойство должно изменяться только при определенных обстоятельствах, и, будучи открытым, станет рычагом для поломки кода, что как-то некрасиво.
Для такого кейза правильнее использовать get / set методы.

UIjs 28.04.2015 13:45

вот записал про наследование для тех кто не в курсе для чего оно, ну и за одно про юишку)

https://www.youtube.com/watch?v=FWc8-dsFKOw

UIjs 28.04.2015 13:48

брин ребят не несите хурню, суть приватных полей класса - ИЗБЕЖАТЬ КОФЛИКТ ИМЕН и ИНКАПСУЛЯЦИЯ. обе цели у меня реализованы. точка.

викмапы какие то придумывают блин kobezzza, обуздай пасанов близ а то у меня время нет)

nerv_ 28.04.2015 14:04

Цитата:

Сообщение от Erolast
Почему? Это ж как раз фишка WeakMap, что ссылки в его ключах не учитываются при сборке мусора.

похоже на то
Я не пользовался WeakMap/WeakSet т.к. не вижу в них необходимости =)

kobezzza 28.04.2015 14:27

Цитата:

викмапы какие то придумывают блин kobezzza, обуздай пасанов близ а то у меня время нет)
:D

Цитата:

Я не пользовался WeakMap/WeakSet т.к. не вижу в них необходимости =)
Зря ты так, офигенная вещь, допустим в качестве ключа у нас объект соединения пользователя (ну т.е. на серваке), клиент отрубился и если на его объект соединения нет других ссылок, то он автоматом грохнется из WeakMap.

Или другой пример: в качестве ключа выступает DOM нода, а в значении мы храним свою полезную инфу, и когда ноду грохнут, то она автоматом грохнется из WeakMap, т.е. это более правильный подход чем расширения ноды своими свойствами, т.к. нет проблемы конфликта имён.

Разумеется также есть Map / Set, которые в отличии от Weak аналогов итерабельны (причём с сохранением порядка вставки), но там память сама уже не чистится.

l-liava-l 28.04.2015 23:30

Цитата:

Зря ты так, офигенная вещь, допустим в качестве ключа у нас объект соединения пользователя (ну т.е. на серваке), клиент отрубился и если на его объект соединения нет других ссылок, то он автоматом грохнется из WeakMap.

Или другой пример: в качестве ключа выступает DOM нода, а в значении мы храним свою полезную инфу, и когда ноду грохнут, то она автоматом грохнется из WeakMap, т.е. это более правильный подход чем расширения ноды своими свойствами, т.к. нет проблемы конфликта имён.

Разумеется также есть Map / Set, которые в отличии от Weak аналогов итерабельны (причём с сохранением порядка вставки), но там память сама уже не чистится.
Еще викмапы и просто мапы удобно юзать чтобы делать двустороннее связывание между двумя разными моделями.

Например есть какая нибудь либа и нужно проэксопртировать модель того что она там нагененирила куда нибудь (отпарвить на бэк) или наоборот с бэка пришло и нужно синхронизировать новую модель и модель либы, я не представляю как тут жить без мапов разных :)

UIjs 29.04.2015 14:19

Цитата:

Сообщение от l-liava-l
Еще викмапы и просто мапы удобно юзать чтобы делать двустороннее связывание между двумя разными моделями.

Они для этого и предназначены, умник. Чтобы всякие кеширования делать и.т.п.


п.с. какая вообще логическая связь между мапами и созданием приватных полей класса обьяснит кто нибудь? создается впечатление что тут форум новичков одних. ахинею несете, стыдно.


Часовой пояс GMT +3, время: 21:59.