我制作了一个虚拟的React组件,该组件什么也不做,只是打印出其this
值。
import React from 'react'
import ReactDOM from 'react-dom'
class MyComponent extends React.Component {
constructor() {
super()
}
componentDidMount() {
console.log(this)
}
render() {
return <div />
}
}
const myComponent = new MyComponent()
console.log(myComponent)
ReactDOM.render(<MyComponent />, document.getElementById('app'))
我希望console.log(myComponent)
将产生与console.log(this)
相同的结果。但是,后者具有其他属性(例如_reactInternalFiber
),并且某些属性是不同的(例如context
,props
)。
我的问题是,React或ReactDOM如何能够提供这些附加属性?您可能会认为MyComponent
的所有实例都将具有相同的属性,因为它们具有相同的constructor()
函数,但是这里不是这种情况。