我有一个非常大的类,有很多处理程序,并且文档开始难以辨认,我想在我的类之外定义处理程序方法并按类型分组在文档上(所有工具都有不同的处理程序,所以我抓住了事件并根据 selectedTool 将其重定向到正确的处理程序),然后导入这些方法/函数并从另一个方法调用它们,就像它们是普通方法一样。
第一个日志正确返回,但由于某种原因,handleSelectorMouseDown 内部的日志返回“未定义”,即使我使用 .bind(this)
我有一个非常大的类,有很多处理程序,并且文档开始难以辨认,我想在我的类之外定义处理程序方法并按类型分组在文档上(所有工具都有不同的处理程序,所以我抓住了事件并根据 selectedTool 将其重定向到正确的处理程序),然后导入这些方法/函数并从另一个方法调用它们,就像它们是普通方法一样。
第一个日志正确返回,但由于某种原因,handleSelectorMouseDown 内部的日志返回“未定义”,即使我使用 .bind(this)
尝试这个:
handleSelectorMouseDown.bind(this)(e)
这将首先将导入的函数绑定到正确的范围,然后执行该函数。
另一种选择是在类构造函数中绑定函数并在以后使用它:
class MyComponent {
constrctor() {
this.handleSelectorMouseDown = handleSelectorMouseDown.bind(this);
}
}
现在你只需要打电话this.handleSelectorMouseDown(e)
你用bind
错了,你必须首先bind
,call
我会在类级别为你的绑定处理程序创建一个引用:
constructor() {
this.onSelectorMouseDown = handleSelectorMouseDown.bind(this);
}
然后你可以随意调用它们:
this.onSelectorMouseDown(e);