- 类中的方法会自动开启严格模式
- 方法严格模式中的this指向为undefined
- 除非用该类的实例调用该方法,this指向为调用该方法的实例
class Weather extends React.Component {
constructor(props){
// 這裡頭的this指向实例对象
super(props);
this.age = age;
// 这个操作是将类的原型上的change方法的this指向进行更改
// 更改为指向实例对象p1;因为change方法原本的this是undefined(类中的方法会自动开启严格模式)
// 用bind更改后,this指向为实例p1,这时候在赋值给this.chenge,
// 也就是给实例对象p1添加了一个方法
// 最后添加到this上,所以,实例上多了一个方法为change,且指向为该实例
// 所以解决了chenge的this指向为undefined的问题;
this.change = this.change.bind(this);
}
rander(){
// 這裡頭的this指向实例对象
console.log('rander');
}
change() {
// 這裡頭的this指向undefined
console.log(this);
}
}
let p1 = new P('111');
p1.change();