Что такое концепция отражения в JavaScript? - PullRequest
0 голосов
/ 06 ноября 2018

Может ли кто-нибудь объяснить, как он (объект отражения и встроенный объект Reflect) работает в JS на человеческом языке и на простых примерах.

Википедия: «В компьютерных науках рефлексия - это способность компьютерной программы исследовать, анализировать и изменять свою собственную структуру и поведение во время выполнения».

1 Ответ

0 голосов
/ 06 ноября 2018

отражение является частью метапрограммирования.

Метапрограммирование - это метод программирования, при котором компьютерные программы имеют возможность обрабатывать программы как свои данные. Это означает, что программа может быть разработана для чтения, генерирования, анализа или преобразования других программ и даже для изменения во время работы.

Итак, концепция отражения такова, как мы видим свое отражение в зеркале: мы можем видеть вещи, которые мы не могли видеть без него, такие как: наши волосы, наши губы, язык и т. Д.

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

это полезно, когда мы делаем метапрограммирование. так как метод или класс должны знать о вещах, находящихся за пределами их (или даже писательского) знания.

конкретный пример: скажем, вода и чашка. Если вы хотите запрограммировать физику воды, чтобы она соответствовала чашке, есть много способов. Допустим, вы работаете со 100 другими разработчиками и не знаете, с каким контейнером они придут (а у кого-то может получиться озеро или даже река), и вы выбираете стиль метапрограммирования. у вас есть класс воды и классная чашка. Ваш класс воды должен знать о свойствах чашки, таких как: максимальный объем, вес, изгибы или даже максимальная / минимальная температура.

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

(я не уверен, что это достаточно хороший пример и объяснение, поэтому, пожалуйста, прокомментируйте лучший вариант, если он вам в голову пришёл)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...