先看这个列子
类中render里面的this指向的是类Weather的实例对象,但是类中方法changeWeather()中的this指向却是undefined。为什么会这样呢?
因为:在类中已经开启了严格模式,this.changeWeather只是将changeWeather指向给了onClick,只是作为onClick的回调并没有被this调用。要被调用可以写成
const w=new Weather()
w.changeWeather(),如此才可以被w这个对象调用。
那么如何解决车工问题呢?可以改成
在construtor中添加this.changeWeatheer=this.changeWeatherTest.bind(this),改变this指向,给Weather的实例对象this添加一个changeWeather的方法,所以这时候onClick里面调用的changWeather就是实列的changeWeather,这个时候changeWeatherTest里面的this就是Weather的实例对象this