@undefined_title

Объясните про поля имя которых пишется через двойное подчеркивание?

поля через двойное подчеркивание __, отличаются только именем? на такие поля всегда ставится гетер и сетер? каким образом можно сделать также? какие есть варианты? можно без использования дескриптора? почему для выполнения геттер функции не надо вызывать, ставить скобки "()"
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
Есть некоторые системные свойства и методы, которые записаны таким же образом, как на скриншоте. Никто вам не мешает объявить собственное свойство с двойными или даже тройными подчеркиваниями - отличий от других свойств не будет. Так, как на скрине, сделано преимущественно для того, чтобы минимизировать конфликты со свойствами, которые добавляют разработчики (как правило, двойные подчеркивания используются в исключительных случаях), а во-вторых, для того, чтобы подчеркнуть (уж простите за тавтологию) этими подчеркиваниями тот факт, что свойство является системным, внутренним, предопределенным и особенным, и, скорее всего, не создано программистом вручную.

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

почему для выполнения геттер функции не надо вызывать, ставить скобки "()"

Если я вас правильно понял, то вы обращаетесь к свойству, для которого создан геттер. Для обращения к свойствам скобки не нужны. Однако, при попытке доступа к свойству браузер проверяет, имеется ли для него функция-геттер, и если да, то браузер вызывает ее. Эти процессы происходят без вашего участия, функция-геттер вызывается неявно (посредством).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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