3

React.Component 生命周期中的“this”怎么可能变成了不同的对象?inrender()和 incomponentDidMount() this指向不同的对象?

  1. 我使用反应 16.0.0
  2. 所有生命周期方法只调用一次
  3. 我用 Webpack 转译 Typescript
  4. 我无法在浏览器中重复它,在浏览器中one === two // true
  5. 我有一个非常大的应用程序,所以我认为它可以是 ReactFiber 某种优化?

喜欢这里:JsBin

这是改变 在此处输入图像描述

4

2 回答 2

0

如您所见,two具有更多属性。这是因为在构造函数中的第一次输出是一个纯 Javascript 类。然后,React 出现并在渲染之前、期间和之后更改类。

于 2018-03-16T12:53:25.917 回答
0

举个例子:

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创建了对象的副本因此不平等。

于 2018-03-16T20:50:34.687 回答