根据
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this
在嵌入式事件处理程序中引用this
时,会将其设置为放置侦听器的DOM
元素。
但是,在react native中,我注意到,当“ this”被内联传递到JSX
事件处理程序时,它被设置为容器类(以及对象)的范围。
造成这种差异的原因是什么?
javascript中的内联事件处理程序:
<button onclick="console.log(this)">
Show this
</button>
控制台记录按钮对象。
react native中JSX中的内联事件处理程序:
class App extends Component {
testFunction = ()=> {console.log('test')}
render() {
return (
<View
<Button onPress={this.testFunction} />
</View>
);
}
}
这确实属于App对象的范围,因为确实调用了testFunction
。为什么没有将this
设置为Button对象(这将使testFunction
未定义)?