不太理解var _this = this;这句话的含义



  • 0_1450846836756_var _this = this.jpg
    如图,红色部分
    问题:var _this = this;的作用是什么,文档上说是在当前页面操作上一个页面的state,这么说也就是_this.state是上一个页面的state,但是我还是不太理解,望做一个解释~



  • 比如class A有定义一个方法,叫做A.方法1()
    然后A把自己的方法传递给B,在B中调用,比如 onPress={this.方法1}, 这里的this当然是指A
    但是当程序运行到用户按下按钮时,此时程序的上下文是在B中,B这个时候发现了A传过来要求在用户Press时执行方法1,那么B就执行 this.方法1() ->>> 注意了,这里的this是谁呢,按照js的语法,这里的this就是B了 ->>> 很显然,如果方法1中的逻辑还以为自己是在A环境里,调用A的数据和方法,自然就会报错,这就是传说中的this大坑
    ES6引入了箭头函数和bind,会在声明时就绑定this,不管传递给谁调用,this都是最初的那一个,不会变化
    那么在ES6之前,人们就发明了this替换法,用另一个变量保存当前的this(常用的变量名有_this, that, me等等,你明白意思就行),然后在回调中,指明要使用我存下来的那个this。