Используете ли Вы дескрипторы в JS, если да, то в каких ситуациях?

Используете ли Вы дескрипторы в JS, если да, то в каких ситуациях? Речь идет об этом:
learn.javascript.ru/descriptors-getters-setters
Такое впечатление, что их добавили для того чтобы программисты пришедшие из классического ООП в JS могли спокойно адаптироваться в JS. То есть, исключительно формальная вещь. Или? Кто как их использует?
  • Вопрос задан
  • 2630 просмотров
Пригласить эксперта
Ответы на вопрос 2
Satanpit
@Satanpit
Front-end developer
Ну самый распространенный, но не самый разумный, вариант использования - расширение существующих прототипов (Object.prototype, Array.prototype), потому что с помощью дескрипторов можно настроить метод/свойство не перечисляемым (enumerable:false) и можно не бояться что при переборе for(key in myObject ) методы, которые Вы добавили, будут участвовать в переборе.

Лично я использую для методов и свойств прототипов, чтобы при переборе не использовать hasOwnProperty() и более гибко настроить доступ к ним.

Сеттеры и геттеры - в зависимости от задач. Допустим, для получения количества записей в коллекции гораздо лаконичней и правильней смотрится Collection.size нежели Collection.size()
Ответ написан
Комментировать
smanioso
@smanioso
Отмечайте ответы на свои вопросы!
Геттеры/сеттеры надо просто попробовать, чтобы оценить всю их прелесть.
Одним из вариантов их использования можно считать переписывание плохого кода (замена обычных полей объектов на пару get/set без изменения зависимого кода).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы