Комментарии 8
НЛО прилетело и опубликовало эту надпись здесь
С# прекрасно живет с рефлексией и никто не жалуется что можно получить доступ к private полям или свойствам.
Потому что это компромисс.
То что решение с рефлексией выглядит сильно лучше чем вариант наделать геттеров в сущности не отменяет того что это всего-навсего грязный хак, использующийся в силу, обычно, необходимости маппить наши сущности на структуру баз данных, которые напрямую с объектами не работают( Оставим не особо прижившиеся кейсы объектных БД ) в совокупности с желанием сделать их независимыми от persistence слоя
-1
Лучше скажите честно кто нибудь использует Symbol у себя в коде?
+3
Конечно
1) В качестве константы
2) В качестве уникального ключа для сохраненного состояния объекта
3) iterator/asyncIterator
1) В качестве константы
2) В качестве уникального ключа для сохраненного состояния объекта
3) iterator/asyncIterator
+1
Использую в декораторах, что бы хранить метаданные.
+1
Статья конечно интересная) но действительно юзает ли кто ?
obj = {
[Symbol(12)]: 1,
[Symbol(12)]: 2
}
console.log(ojb) // {Symbol(12): 1, Symbol(12): 2}
0
По-моему, символы нужны немного для другого. Ввиду того, что они immutable, это означает, что один и тот же символ вызванный много раз будет занимать ту же ячейку памяти. Потому что это тот же объект. Именно по-этому обычно в качестве ключей хэшей используют символы (чтобы при создании тысячи экземпляров хэшей с одними и теми же ключами, не хранить ключи каждого экземпляра в отдельных ячейках памяти).
0
Как чуял, когда не стал читать главу про это…
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Особенности использования типа данных Symbol в JavaScript