javascript - 是否可以使用 addEventListener 调用类方法?

标签 javascript

只是我一直想知道的事情。在.addEventListener 方法的第二个参数中,您可以调用“(自定义)类方法”而不是函数吗?

即会像下面这样工作吗?

var object = new ClassName();
document.getElementById('x').addEventListener('click', object.method, false);

最佳答案

不,您所写的是行不通的,因为 method 将在没有 object 作为其上下文的情况下被调用。在 method 中,this 将被设置为发起事件的 DOM 元素。

如果要调用方法并保留上下文,请使用函数关闭 object 变量:

var object = new ClassName();
document.getElementById('x').addEventListener('click', function () {
  object.method()
}, false);

关于javascript - 是否可以使用 addEventListener 调用类方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298918/

相关文章:

javascript - 迭代具有最大值限制的数组并返回

Javascript 计算选中的复选框而不计算另一个复选框

javascript - jquery 禁用每个按钮

javascript - 如何使用 tweet_button.html 在 twitter 中与 # 共享 url

JavaScript:addEventListener()、removeEventListener() 和 bind()

javascript - 使用.nvm安装时如何选择节点版本

javascript - knex promises - 如何等待两个函数完成他们的工作

javascript - 使用 fetch 创建 get 请求 - 只有选项被发送

javascript - 为什么我的 raphael.JS 圈子中仅有的一个是动画的?

javascript - 在 Sails.js 中从 PostgreSQL 获取 BYTEA