使用ES6,我有以下类层次结构:
class App>扩展SuperComponent>扩展了React.Component
SuperComponent
有一个'静态'名为PAGES
的属性,定义如下:
class SuperComponent extends React.Component
{
// constructor + various methods etc.
}
SuperComponent.PAGES = "someValue";
当我console.log
App
的实例时,我会看到PAGES
属性,就好像它是App
本身的属性一样。如果我遵循__proto__
层次结构,我发现SuperComponent
不仅具有此属性,还具有其父ReactComponent
。每个对象似乎都包含它。
我的理解是该属性应该只存在于SuperComponent
中,可以通过通常的原型查找从派生的App
类访问。那么为什么它会显示在层次结构中的所有三个对象中?这是Chrome控制台输出的功能,还是我误解了什么?
编辑
当我从其构造函数中记录App
类时,似乎会发生这种情况。将其记录在此之外会产生预期的输出。
从App
构造函数外部登录:https://s30.postimg.org/w3afaey0h/Main_Dir_Log.png
从App
构造函数中记录:https://s30.postimg.org/546kf9bjl/Constructor_Log.png
这是由于构建App
的实例的临时过程吗?