javascript - 如何将原型(prototype)函数添加到初始化函数中的事件监听器?

标签 javascript html oop prototype

我不确定如何准确表达我的问题,所以让我举个例子:

function foo() {
  window.addEventListener("keydown", function(event) {
        bar(event.keycode);
}

foo.prototype.bar = function (keycode) {
//code
}

我试过使用 this.bar(),但结果是将 window 用作 this。有没有办法做到这一点,还是我必须手动调用另一个初始化方法?

最佳答案

在传递之前将 this.bar 绑定(bind)到 this

function foo() {
    window.addEventListener("keydown", this.bar.bind(this), false);
}


foo.prototype.bar = function (event) {
    console.log(event.keyCode);
}

演示 http://jsfiddle.net/2tee4/

关于javascript - 如何将原型(prototype)函数添加到初始化函数中的事件监听器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11364163/

相关文章:

javascript - 如何在 jQgrid 中对行进行排序后获取新的行顺序?

javascript - 单击返回数组中的项目

html - 如何水平对齐图片?

oop - 参数对象的构建器模式

javascript - 初始化类属性

javascript - 如何检查单个 asp.net 按钮单击事件中的所有 asp.net 复选框?

javascript - angularjs中的拆分函数

javascript - 选择 html select 下拉列表的动态创建选项

javascript - 延迟关闭专门用 div 制作的 css 菜单上的子菜单

oop - 在 OOP 中,在什么情况下您会作用于对象而不是让对象起作用?