Javascript 无法修改原型阵列内部

Javascript 无法修改原型阵列内部,javascript,prototype,Javascript,Prototype,问题在于游戏中的Rect:[]实例,它应该是对象数组Rect。当我访问rects属性时,游戏中给出了未定义的 draw方法不是作为对象的方法调用的,它是作为全局范围内的函数调用的,因此此将是对窗口的引用,而不是对游戏对象的引用 将此复制到变量,并使用它从函数调用方法: var t = this; window.setInterval(function() { t.draw(); }, 1000 / 30); 这条线rect.draw(This.ctx)也不正确,因为ctx保存到全局范围中,这

问题在于游戏中的Rect:[]实例,它应该是对象数组Rect。当我访问rects属性时,游戏中给出了未定义的


draw
方法不是作为对象的方法调用的,它是作为全局范围内的函数调用的,因此
将是对
窗口
的引用,而不是对游戏对象的引用

复制到变量,并使用它从函数调用方法:

var t = this;
window.setInterval(function() { t.draw(); }, 1000 / 30);

这条线
rect.draw(This.ctx)
也不正确,因为ctx保存到全局范围中,这里
window.ctx=this.canvas.getContext('2d')
@PeterPajchl:但该代码在回调函数中运行,因此
将是
窗口
对象。哪个回调?你答案中的那个?@PeterPajchl:不,
forEach
的回调。如果我错了,请根据文档纠正我-如果
thisArg
undefined
null
值取决于它是否在严格模式下运行->仅在非严格模式下
值将引用全局对象
var t = this;
window.setInterval(function() { t.draw(); }, 1000 / 30);