关于JavaScript绑定方法

时间:2016-04-18 05:40:59

标签: javascript bind

reference code segment

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

谁能告诉我为什么这样写?

3 个答案:

答案 0 :(得分:0)

  

bind()方法创建一个新函数,当被调用时,它具有它   此关键字设置为提供的值,具有给定的序列   调用新函数时提供的任何参数。

来自MDN

答案 1 :(得分:0)

  

谁能告诉我为什么这样写?

localizationChanged用作事件处理程序:

LocalizationStore.addChangeListener(this.localizationChanged);`

如果处理程序未绑定到组件实例,this将不会引用组件实例,并且无法调用组件的setState方法({{1} })。

答案 2 :(得分:0)

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

但是在ES2015中你不需要这个。你可以使用箭头操作符:

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