Javascript 自定义数组函数不接受参数
我正在调试代码,并查看在调用erase()时,Entite和_deferredKill数组是否正确填充。问题是参数“item”未定义,即使我看到参数“gGameEngine.\u deferredKill[I]”正在传入。为什么它不接受我传递的被杀实体?我用的是约翰·雷斯格Javascript 自定义数组函数不接受参数,javascript,arrays,prototype,Javascript,Arrays,Prototype,我正在调试代码,并查看在调用erase()时,Entite和_deferredKill数组是否正确填充。问题是参数“item”未定义,即使我看到参数“gGameEngine.\u deferredKill[I]”正在传入。为什么它不接受我传递的被杀实体?我用的是约翰·雷斯格 //In GameEngine.js GameEngineClass = Class.extend({ entities: [], _deferredKill: [], .........
//In GameEngine.js
GameEngineClass = Class.extend({
entities: [],
_deferredKill: [],
.........
for (var k = 0; k < gGameEngine._deferredKill.length; k++){
gGameEngine.entities.erase(gGameEngine._deferredKill[i]);
}
}
gGameEngine = new GameEngineClass();
//in core.js, GameEngineClass is extended from this.
Array.prototype.erase = function(item) {
for (var i = this.length; i--; i) {
if (this[i] === item) this.splice(i, 1);
}
return this;
};
//在GameEngine.js中
GameEngineClass=Class.extend({
实体:[],
_延迟终止:[],
.........
对于(var k=0;k
在访问数组索引时使用变量i
。此变量不存在,因此作为参数传递的项的值也因此未定义
你应该用ggamengine.\u deferredKill[i]
替换为ggamengine.\u deferredKill[k]
,以匹配你的循环。谢谢!我在上一个循环中使用了“i”,对它超出范围的事实视而不见。