首先一点,React这是使用的ES6的 class
它只是一种语法糖(只要它能实现的,ES5也能实现)
而使用 class 创建的对象,在没有通过 new
关键字去实例化的之前它的内部方法this是无绑定状态的。
也就是说上面的代码handleClick
方法如果不做绑定,那么这个方法的 this
会指向 undefined
解释:JSX代码经过 Babel 编译之后变成 React 的表达式这个表達式在render函数被调用的时候通过 React 的
createElement
方法生成一个element,在这个方法中this指向了被创建的类(也就是相应的React组件)。
看看上面那段JSX代码转换成 JS 代码昰什么样子
主要看 _createClass
方法第一个参数是被创建的类,第二个参数是一个数组数组里面是这个被创建类中的方法。