将属性转移到对象方法中的事件函数中
transferring a property into an event function within an objects method
我试图采取一个对象属性,并将其转移到一个按键事件-麻烦的是,你只能添加事件本身,并使用这个。X_point在子函数中不起作用。这是我的代码。我也可以转移这个。X_point转换为var.x_point,然后使用它,但这完全破坏了它作为对象的意义。
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);
}
ninja.prototype.move = function(){
window.addEventListener("keydown", keyPress, false);
function keyPress(e){
if(e.keyCode == 68){ //d
alert(this.x_point);
}
}
}
你可以使用bind:
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。代理(键盘按键,这)。
如果您使用that
,例如:
ninja.prototype.move = function(){
var that = this;
window.addEventListener("keydown", keyPress, false);
function keyPress(e){
if(e.keyCode == 68){ //d
alert(that.x_point);
}
}
相关文章:
- 无法在java脚本中调用图像的点击事件函数
- 如何在事件函数中访问窗口实例
- 事件函数完整日历中的多个ajax调用
- 如何使参数在事件函数中工作
- Jquery Onclick 事件函数第二次不起作用
- 宣传单:双击时不要触发点击事件函数
- Bootstrap/JQuery-单选按钮组事件函数
- 将jQuery事件函数应用于新的Knockout.js数组元素
- 防止在元素上触发新事件,直到当前事件函数在jQuery中完成
- 有没有一种方法可以将多个参数传递给主干js中的事件函数
- 用javascript更新事件函数中的全局变量
- Jquery:如何在事件函数之外获取变量
- 将参数传递给事件函数
- postMessage - 多个 postMessage 事件/函数/回调
- 多事件函数中的悬停延迟
- JavaScript 事件函数 - 在声明之前调用
- 使用 jQuery 循环设置事件函数触发器
- 暂停,直到事件/函数使用 jquery 或 JavaScript 完成
- 如何访问 jQuery 事件函数中的对象属性
- 单击事件函数未从花式盒子灯箱内触发