如何从方法函数中获取对象值或函数?

时间:2018-12-04 23:34:20

标签: javascript

如何从方法函数中获取对象中的值或函数?

示例:

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);
    }
  }
}

1 个答案:

答案 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");