javascript - 如何从点击事件中调用类函数
问题描述
我通常用 Java 编程,当我将事件侦听器添加到类中的属性时,我可以从事件中调用类中的方法。但是在 JavaScript 中,如果我使用“this”。在函数内部,上下文是“onclick”,如果我不使用“this”。我收到未定义 resetear 的错误。如何从 onclick 函数中的 Calculadora 访问属性和方法?
class Calculadora{
constructor () {
this.resultado = document.getElementById("resultado");
this.c = document.getElementById("C");
...
this.memoria = "";
this.a = 0;
this.b = 0;
this.operacion = "";
}
resetear(){
this.resultado.textContent = "";
this.a = 0;
this.b = 0;
this.operacion = "";
}
assignar() {
this.c.onclick = function(e){ // Here I need to change some things about Calculadora
resultado.textContent = "";
this.a = 0;
this.b = 0;
this.operacion = "";
}
...
}
}
解决方案
您可以onclick
使用箭头函数定义处理程序:
this.c.onclick = e => {
}
这样做,this
处理程序内部就是类本身。
箭头函数保留了 this 的范围,同时function
创建了一个新的范围。
推荐阅读
- .net - 在 .Net 核心中构建具有动态对象数组的表单
- html - 为什么 css 样式会这样?
- angular - 使用 Angular 6 进行 Cognito Facebook 社交登录:如何使用返回的代码在放大 Auth 中对用户进行身份验证
- java - 图片按钮 onclick 更改图片
- mdt - mdt 2013 如何一次为多个型号的 pc 部署单个操作系统
- oracle - 使用spring boot jpa在类路径资源中创建名称为“entityManagerFactory”的bean时出错
- excel - 如何在一系列单元格中显示活动目录的结果
- kubernetes - 使用 Google IAM 进行 GKE 服务网络访问
- java - 每个方法的操作数堆栈 V/S 每个方法的局部变量
- python - Google Drive API:用户未授予应用程序错误