1. class EventDemo extends React.Component {
    2. constructor(props) {
    3. super(props)
    4. this.state = {
    5. name: 'zhangsan',
    6. }
    7. // 修改方法的 this 指向
    8. // this.clickHandler1 = this.clickHandler1.bind(this)
    9. }
    10. // 普通函数
    11. clickHandler1() {
    12. // 在转译过程中,因为Babel是严格模式‘use strict’下进行的,不允许函数里的this指向window,所以这里的this指向undefined
    13. console.log('this....', this) // undefined
    14. }
    15. // 箭头函数
    16. // 箭头函数不绑定this,它会捕获其定义时的位置上下文的this值, 作为自己的this值
    17. clickHandler2 = () => {
    18. this.setState({
    19. name: 'lisi'
    20. })
    21. }
    22. render() {
    23. // this - 使用 bind
    24. return <p onClick={this.clickHandler1}>
    25. {this.state.name}
    26. </p>
    27. // return <p onClick={this.clickHandler2}>
    28. // clickHandler2 {this.state.name}
    29. // </p>
    30. }
    31. }
    32. export default EventDemo