首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在对象方法中将属性转换为事件函数

在对象方法中将属性转换为事件函数
EN

Stack Overflow用户
提问于 2013-03-04 20:56:55
回答 2查看 35关注 0票数 0

我正在尝试获取一个对象属性并将其转移到一个按键事件中--问题是您只能添加事件本身,并且在子函数中使用this.x_point将不起作用。这是我的代码。我也可以将this.x_point转换为var.x_point,然后使用它,但这完全破坏了它是一个对象的意义。

代码语言:javascript
复制
function ninja(name, speed){
this.name = name;
this.speed = speed;
this.x_point = 0;
this.y_point = 0;
loadImages("n_main", 0, 0);
loadImages("n_armL", -5, 8);
loadImages("n_armR", 25, 8);

}

代码语言:javascript
复制
ninja.prototype.move = function(){
window.addEventListener("keydown", keyPress, false);
function keyPress(e){
    if(e.keyCode == 68){ //d
        alert(this.x_point);
    }
}

}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-04 21:01:28

您可以使用bind来执行此操作:

代码语言:javascript
复制
ninja.prototype.move = function(){
window.addEventListener("keydown", keyPress.bind(this), false);
function keyPress(e){
    if(e.keyCode == 68){ //d
        alert(this.x_point);
    }
}

或者,如果您使用jQuery,请尝试jQuery.proxy(keyPress,this)。

票数 1
EN

Stack Overflow用户

发布于 2013-03-04 20:59:59

如果您使用that,例如:

代码语言:javascript
复制
ninja.prototype.move = function(){
 var that = this;
 window.addEventListener("keydown", keyPress, false);
 function keyPress(e){
  if(e.keyCode == 68){ //d
    alert(that.x_point);
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15202132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档