对象数学Javascript
Object mathematics Javascript
本文关键字:Javascript 对象 更新时间:2023-09-26
我在JavaScript中的对象遇到了一些问题。请遵守以下代码:
function Bullet(x, y) {
this.x = x;
this.y = y;
console.log(this.x);
this.fire = function() {
this.x++;
console.log(this.x);
};
this.draw = function(ctx, bulletImage) {
ctx.drawImage(bulletImage, this.x, this.y);
};
};
问题出在 this.fire((;我正在尝试做的是从我的主脚本运行它:
bullet = new Bullet(20, 80);
bullet_loop = setInterval(bullet.fire, 11);
然后它应该执行 this.fire();
函数,直到我取消间隔。然而,这按计划进行。
创建对象时,它具有行console.log(this.x);
这将按原样返回"20"
,但是当调用this.fire();
函数时它应该将1
加起来最多this.x
,就像您在发出this.x++;
时所期望的那样。但是,当它到达this.fire();
函数中的console.log(this.x);
行时它返回NaN
.
有人知道我在这里做错了什么吗?
回调未正确绑定。 最简单的方法是将命令包装在函数中:
bullet_loop = setInterval(function() { bullet.fire(); }, 11);
您还可以使用Function.prototype.bind
功能:
bullet_loop = setInterval(bullet.fire.bind(bullet), 11);
相关文章:
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 循环遍历以数组为值的Javascript对象
- 从ajax请求中获取javascript对象
- 如何从对象的原型方法访问JavaScript对象属性
- 将XML转换为普通的旧JavaScript对象
- 通过引用传递JavaScript对象
- javascript对象操作:根据指定条件选择属性
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 如何在异步函数中使用javascript对象
- 临时Javascript对象
- 如何在ASP中为用户控件添加Javascript对象网
- 使用数组向下搜索Javascript对象
- Rails将JavaScript对象存储到Model的有效方式
- JavaScript对象不是从原型链继承的
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- SetInterval在javascript对象中表现怪异
- Javascript 对象和 this 关键字
- 如何在不知道关键字的情况下访问javascript对象值
- 在 JavaScript 对象中设置要使用的运算符的属性
- 如何搜索JavaScript对象并更改值