首页 > 解决方案 > JavaScript中反射的概念是什么?

问题描述

任何人都可以用人类语言和简单的例子解释它(反射和内置的反射对象)是如何在 JS 中工作的。

维基百科:“在计算机科学中,反射是计算机程序在运行时检查、内省和修改其自身结构和行为的能力”。

标签: javascriptecmascript-6

解决方案


反射是元编程的一部分。

元编程是一种编程技术,其中计算机程序具有将程序视为数据的能力。这意味着一个程序可以被设计为读取、生成、分析或转换其他程序,甚至在运行时修改自身。

所以反射的概念是,就像我们在镜子里看到自己的倒影一样:我们可以看到没有它就看不到的东西,例如:我们的头发、嘴唇、舌头等。

简而言之,如果一个方法或一个类调用这个反射的东西,它可以看到它不知道的对象,例如:实例变量,该类具有的方法列表,以及其他属性,什么类调用了这个方法。

这在我们进行元编程时很有用。作为方法或类应该知道他们(甚至作者)知识之外的事情。

具体示例:假设水和杯子。如果你想对水物理进行编程以适应杯子,有很多方法。假设您与 100 位其他开发人员一起工作,并且不知道他们会想出什么样的容器(有人最终可能会得到一个湖泊甚至河流),而您选择了元编程风格。你有班水,班杯。您的水类必须了解杯子的属性,例如:最大体积、重量、曲线,甚至最高/最低温度。

结果:每当有人调用类水时,您不必将这些信息作为参数插入,因为如果它们的数量增加,可能很难跟踪。

(我不确定这是否是一个足够好的例子和解释,所以如果你突然想到,请评论一个更好的例子)


推荐阅读