不能改变属性
Can't change property
我是javascript新手,在更新属性时遇到了一些问题。我已经尝试了很多不同的方法来解决这个问题。谁能告诉我为什么我不能改变Acceleration
类的_x
属性?
var acceleration;
function Acceleration()
{
this._x = 0;
this.getX = function(){return this._x;};//This one always returns 0;
this.onSuccess = function(e)
{
this._x = e.x;
document.write( this._x + '<br/>');//This one changes.
document.write( acceleration._x + '<br/>');//This one remains 0;
}
this.update = function()
{
intel.xdk.accelerometer.getCurrentAcceleration(this.onSuccess, {adjustForRotation:false});
}
}
function start()
{
acceleration = new Acceleration();
//Start the game.
loop();
}
function loop()
{
acceleration.update();
setTimeout(loop, 1000);
}
document.addEventListener('intel.xdk.device.ready', start, false);
如果我不在_x
前面使用this
,它会给出相同的结果。
谢谢!
试试这样:
var that = this;
this.getX = function(){return that._x;};
函数中的 this
没有引用类对象。
this
关键字的文档。谢谢@Pointy。我这样重写了这个函数。
this.update = function()
{
var object = this;
intel.xdk.accelerometer.getCurrentAcceleration(
function(e)
{
if(object._x == e.x && object._y == e.y && object._z == e.z){
_changed = false;
}else{
object._x = e.x;
object._y = e.y;
object._z = e.z;
_changed = true;
}
}, {adjustForRotation:false});
}
相关文章:
- 为什么菜单背景颜色不能改变
- 为什么我的
- 元素上的颜色属性没有改变我的 .hover() 事件处理程序
- JS滑块不能改变图像的动画时间
- 不能改变span的内容
- 在AngularJs中,基于指令属性的改变来更新UI
- 我不能改变setInterval内的全局变量
- 对象的属性在改变时激活功能
- 我怎么能改变引导模态宽度在我的情况
- 我怎么能改变一个项目的值成数组不修改其他在React
- 为什么文本的高度不能改变
- 不能改变css文件在流星管理-lte
- 当CSS属性溢出改变时,在firefox上重新加载Youtube视频
- 使用属性来改变javascript插件中的全局变量
- JS数组长度属性能返回一个负值吗?
- 当属性值改变时更新指令视图
- 我怎么能改变从android在运行时的html页面数据
- 不能改变属性
- 我怎么能改变的宽度推特引导在移动视图到完整视图
- 为什么我不能改变一个字符串的原型
- HTML CSS不能改变表列宽度