如何从方法函数中获取对象中的值或函数?
示例:
function Game(playerName) {
this.player = playerName;
this.scoreWins = 0;
this.scoreLoses = 0;
this.getCheckLetter = function () {
document.onkeyup = myKeyUpHandler;
function myKeyUpHandler() {
firstName = this.player;
console.log(firstName);
}
}
}
答案 0 :(得分:1)
首先,您应该倾向于使用[element].addEventListener(...)
而不是document.on[event name]
,因为某些脚本可能会在以后意外删除事件侦听器。
下一步是绑定事件监听器时,事件监听器函数内的this
成为打开事件监听器的元素。为了避免这种情况,您必须将功能专门 bind 绑定到另一个对象。在这种情况下,我将this.myKeyUpHandler
绑定到this
对象的Game
上。
将文档聚焦后,您按下按键时的输出是您收到了一些带有初始播放器名称的控制台通知。
function Game(playerName) {
this.player = playerName;
this.scoreWins = 0;
this.scoreLoses = 0;
this.myKeyUpHandler= function() {
firstName = this.player;
console.log(firstName);
}
document.addEventListener('keyup', this.myKeyUpHandler.bind(this));
}
let Paul = new Game("Paul");