React.Component 生命周期中的“this”怎么可能变成了不同的对象?inrender()
和 incomponentDidMount()
this
指向不同的对象?
- 我使用反应 16.0.0
- 所有生命周期方法只调用一次
- 我用 Webpack 转译 Typescript
- 我无法在浏览器中重复它,在浏览器中
one === two // true
- 我有一个非常大的应用程序,所以我认为它可以是 ReactFiber 某种优化?
喜欢这里:JsBin
React.Component 生命周期中的“this”怎么可能变成了不同的对象?inrender()
和 incomponentDidMount()
this
指向不同的对象?
one === two // true
喜欢这里:JsBin
如您所见,two
具有更多属性。这是因为在构造函数中的第一次输出是一个纯 Javascript 类。然后,React 出现并在渲染之前、期间和之后更改类。
举个例子:
var a = {one:"1"};
var b = a;
a==b // true
a===b // true
var c = Object.assign({}, a);
c //{one: "1"}
a===c // false
a==c // false
调用Object.assign
创建了对象的副本因此不平等。