react class的this指向
类里面的函数,放在类的原型对象上,供实例对象调用
class Person{类里面自带函数的局部严格模式
构造方法
constructor(name,age){
构造器里的this是当前实例对象
this.name=name;
this.age=age;
}
//一般方法
speak(){
没人调用this指向undefined
实例对象调用,this指向实例对象
}
}
onClick={this.handleClick}
通过this这个实例对象获取handleClick函数
此时handleClick是自己执行的,所以this指向undefined
定义箭头函数this指向定义时的this,
class Person{
类中可以直接写赋值语句
给实例对象添加一个属性name和speck
name='guo'
speak=()=>{}
}
函数定义方式
-
箭头函数常用
定义
fn=()=>{}
调用
this.fn -
箭头函数常用
定义
handleClick(){}
调用
onClick={data=>this.handleClick}
箭头函数里没有this,this是外部的render
也就是组件的实例对象 -
构造器内声明
constructor(){
this.clickHandle = this.clickHandle.bind(this);
}
clickHandle(){} -
bind绑定
clickHandle(){}
this.clickHandle.bind(this);