我正在编写一个简单的 js 类,它查找 div 并向其中注入(inject) img 标签。
如果用户点击 div,我需要调用内部函数 stop()。
class PreDS {
constructor() {
console.log("[PreDS] constr")
this._el = document.querySelector(".imgOrari")
if (this._el){
this._el.innerHTML = "<img id='imgOrariImg'>";
this._el.onclick =
function(){
console.log("[PreDS] click _el")
--> stop("click")
}
}
else console.error("class imgOrari not found")
}
stop(){
...
}
问题是这样定义的 onclick 处理程序不在对象的上下文中,因此该函数未定义。
如何调用该功能?
最佳答案
使用 ES6 的胖箭头函数来传输上下文,而不是像 ES5 的 function()
那样创建新函数。此外,您还需要使用 this.stop()
而不仅仅是 stop()
this._el.onclick = () => {
console.log("[PreDS] click _el")
this.stop("click")
}
关于Javascript - 如何从内部异步函数调用内部类函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076327/