首先注意:react并不会真正的绑定事件到每个具体<>的元素身上,而是采用事件代理的模式
import React, { Component } from 'react'
export default class App extends Component {
a=100
render() {
return (
<div>
<input></input>
<button onClick={() => {
console.log('click1',this.a)
}}>add1</button>
<button onClick={this.handleClick2.bind(this)}>add2-不推荐</button>
<button onClick={this.handleClick3}>add3-比较推荐</button>
<button onClick={() => {
this.handleClick4()//比较推荐-传参
}}>add4</button>
</div>
)
}
// react并不会真正的绑定事件到每个具体<>的元素身上,而是采用事件代理的模式
handleClick2() {
console.log('click2',this.a)
}
handleClick3 = () => {
console.log('click3',this.a)
}
handleClick4(){
console.log('click4',this.a)
}
}
// 修改this指向 bind改变指向并手动执行 apply&call改变指向并自动执行
// var obj1={
// name:'obj1',
// console_name(){
// console.log(this.name)
// }
// }
// var obj2={
// name:'obj2',
// console_name(){
// console.log(this.name)
// }
// }
// obj1.console_name.call(obj2)
// obj2.console_name.bind(obj1)()