关于JavaScript绑定方法

About JavaScript bind method

本文关键字:方法 绑定 JavaScript 关于      更新时间:2023-09-26

参考代码段

this.localizationChanged = this.localizationChanged.bind(this);

谁能告诉我为什么要那样写?

谁能告诉我为什么要那样写?

localizationChanged用作事件处理程序:

LocalizationStore.addChangeListener(this.localizationChanged);`

如果处理程序未绑定到组件实例,则this将不会引用组件实例,也不可能调用组件的setState方法(this.setState(...))。

bind()方法创建一个新函数,当调用该函数时该关键字设置为提供的值,具有给定的在调用新函数时提供的任何参数之前的参数。

来自MDN。

如果您试图在localizationChanged函数中访问它,则绑定它。

然而,在ES2015中,您不需要这样做。您可以使用箭头运算符:

localizationChanged =()=>{
    console.log(this);
}