有了这个代码,当按下一个键时,‘index’就变成了NaN. 为什么,以及如何正确地进行呢?

const Key = function(){
    this.Index = 0;
}

Key.prototype.storeKey = function(key){
    this.Index++;
    console.log(this.Index);
}

const listener = new Key();

addEventListener("keydown", listener.storeKey);     // <---- does not work

listener.storeKey();    // <--- does work   

通过EventListener原型函数更改对象中的值

推荐答案

试试这个代码:

const Key = function() {
  this.Index = 0;
};

Key.prototype.storeKey = function(key) {
  this.Index++;
  console.log(this.Index);
};

const listener = new Key();

addEventListener("keydown", listener.storeKey.bind(listener)); // Bind 'this' to the 'listener' object

listener.storeKey(); // Works fine

Javascript相关问答推荐

添加/删除时React图像上传重新渲染上传的图像

React Hooks中useState的同步问题

我在这个黑暗模式按钮上做错了什么?

角色 map 集/spritebook动画,用户输入不停止在键上相位器3

将2D数组转换为图形

我可以从React中的出口从主布局调用一个处理程序函数吗?

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

我创建了一个创建对象的函数,我希望从该函数创建的对象具有唯一的键.我怎么能做到这一点?

对路由DOM嵌套路由作出react

如何在ASP.NET项目中使用Google Chart API JavaScript将二次轴线值格式化为百分比

将异步回调转换为异步生成器模式

将范围 Select 器添加到HighChart面积图

react 路由如何使用从加载器返回的数据

如何让SVG图标在被点击和访问后改变 colored颜色 ,并在被访问后取消点击时恢复到原来的 colored颜色 ?

我为什么要使用回调而不是等待?

如何在移动设备中使用JAVASSCRIPT移除点击时的焦点/悬停状态

需要刷新以查看Mern堆栈应用程序中的更改

当达到高度限制时,如何裁剪图像?使用html和css

当S点击按钮时,我如何才能改变它的样式?

如何用react组件替换dom元素?