首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >方法在带有not函数的JS类中使用

方法在带有not函数的JS类中使用
EN

Stack Overflow用户
提问于 2019-03-22 16:53:48
回答 1查看 31关注 0票数 0

我有一个隐藏的表单,因为两个表单在同一页上做不同的提交。隐藏的表单保存了密码字段,一旦输入该字段将向用户显示一个部分,此部分全部用于PHP操作,并在单击按钮时使用。但是,当用户按下'Enter‘时,我在输入字段上有一个addEventListener来侦听。在事件侦听器中,我声明了按钮的名称,然后声明了提交表单的click()方法。但我遇到了以下错误:

代码语言:javascript
代码运行次数:0
运行
复制
Uncaught TypeError: this.confirmPassowrd() is not a function?

JS

代码语言:javascript
代码运行次数:0
运行
复制
enterKey()
{
    document.querySelector('#password-confirm').addEventListener('keydown', function (e) {
       if (e.key === 'Enter') {
           this.confirmPassword();
       }
    });
}

confirmPassword()
{
    document.getElementById('confirm-password').click();
}

我不完全确定发生了什么,但是如果我将它作为一个普通函数放在html所在的页面上,并使用enterKey()方法调用它,它就可以正常工作了。有什么建议吗?

致以亲切的问候,

詹姆斯

EN

回答 1

Stack Overflow用户

发布于 2019-03-22 16:55:33

您将在keydown事件侦听器回调中丢失类的上下文。

尝试将您要传入的function (e)切换到箭头函数:e =>

箭头函数将保留其创建位置的词法this,而function将接受调用时传递给它的任何this。因此,在您的事件侦听器函数中,this不再意味着“定义在其中的类的实例”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55304399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档