我正在编写一个简单的js类,用于查找div并将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 处理程序不在对象的上下文中,因此该函数为 undefined 。
如何调用该功能?
答案 0 :(得分:1)
使用ES6的粗箭头功能传输上下文,而不创建像ES5的function()
这样的新功能。另外,您需要使用this.stop()
而不是stop()
this._el.onclick = () => {
console.log("[PreDS] click _el")
this.stop("click")
}