Javascript 如何将多个事件绑定到";这是什么;?

Javascript 如何将多个事件绑定到";这是什么;?,javascript,reactjs,Javascript,Reactjs,如何将多个事件处理程序绑定到此函数? 如果我有很多这样的事件处理函数,那么如何实现呢?任何选项?假设这些调用放在您可以使用的构造函数中,当使用arrow函数时,该构造函数将自动绑定到此当前实例 this.buttonClick = this.buttonClick.bind(this); this.eventChange = this.eventChange.bind(this); this.buttonClick3 = this.buttonClick3.bind(this); this.ev

如何将多个事件处理程序绑定到此函数?
如果我有很多这样的事件处理函数,那么如何实现呢?任何选项?

假设这些调用放在您可以使用的构造函数中,当使用arrow函数时,该构造函数将自动绑定到此当前实例

this.buttonClick = this.buttonClick.bind(this);
this.eventChange = this.eventChange.bind(this);
this.buttonClick3 = this.buttonClick3.bind(this);
this.eventChange1 = this.eventChange1.bind(this);
上面的代码允许您跳过
this.buttonClick=this.buttonClick.bind(this)
binding

请注意,使用公共类字段的效率低于普通函数,因为它们绑定在实例级别而不是原型级别。因此,我建议您仅在将函数绑定到当前实例上下文时使用此选项。不要用这种方法替换所有的函数


如果您没有使用像Babel这样的transpiler,或者由于其他原因无法使用此stage 3功能。另一种方法是通过预定义的数组循环,该数组包含需要绑定的方法

class Something {
  buttonClick = (...args) => {
    // code that uses `this` ...
  };
}

假设这些调用放在您可以使用的构造函数中,当使用arrow函数时,该构造函数将自动绑定到此当前实例

this.buttonClick = this.buttonClick.bind(this);
this.eventChange = this.eventChange.bind(this);
this.buttonClick3 = this.buttonClick3.bind(this);
this.eventChange1 = this.eventChange1.bind(this);
上面的代码允许您跳过
this.buttonClick=this.buttonClick.bind(this)
binding

请注意,使用公共类字段的效率低于普通函数,因为它们绑定在实例级别而不是原型级别。因此,我建议您仅在将函数绑定到当前实例上下文时使用此选项。不要用这种方法替换所有的函数


如果您没有使用像Babel这样的transpiler,或者由于其他原因无法使用此stage 3功能。另一种方法是通过预定义的数组循环,该数组包含需要绑定的方法

class Something {
  buttonClick = (...args) => {
    // code that uses `this` ...
  };
}

你可以把它放在一个数组和循环中,但这似乎是一个毫无意义的“优化”。如果你有这么多的事件处理程序,这似乎是一个“好”主意,我会说你的组件有比这更大的问题。JS中有建议的更改,我们可以删除它。但是现在对浏览器的支持是有限的。一个选择是有一个循环。另一个是一个箭头函数,它已经绑定了。但我也认为正如@DaveNewton所提到的,你需要重新考虑你的组件结构。你可以把它放在一个数组和循环中,但这似乎是一个毫无意义的“优化”。如果你有这么多的事件处理程序,这似乎是一个“好”主意,我会说你的组件有比这更大的问题。JS中有建议的更改,我们可以删除它。但是现在对浏览器的支持是有限的。一个选择是有一个循环。另一个是一个箭头函数,它已经绑定了。但是我也认为正如@DaveNewton提到的,您需要重新考虑组件结构。