未捕获的类型错误: 无法设置未定义的属性“0”
Uncaught TypeError: Cannot set property '0' of undefined
我正在尝试将值插入数组,但是当我尝试插入值时,它给了我未定义的Connot集属性"0"。但显然我已经定义了数组。
错误行:
this.enemyMinions[i] = new EnemyCombatMinion(new Minion(enemyMinionInfo[0], 0, enemyMinionInfo[1], enemyMinionInfo[2], enemyMinionInfo[3], 0, 0, 0, 0, 0, 0));
这是整个代码:
function Combat() {
this.enemyMinions = [];
this.playerMinions = [];
this.currentEnemyMinion = null;
this.currentPlayerMinion = null;
}
Combat.prototype.initialize = function() {
var o = 0;
for(var i = 0; i < partySlots.length; i++) {
if(partySlots[i]) {
this.playerMinions[o] = PlayerCombatMinion(partySlots[i]);
o++;
}
}
this.currentPlayerMinion = this.playerMinions[0];
$.ajax({
url: "./api/generateEnemyCombatMinions.php",
cache: false
})
.done(function( html ) {
var response = html.split(":::");
for(var i = 0; i < response.length; i++) {
var enemyMinionInfo = response[i].split("::");
this.enemyMinions[i] = new EnemyCombatMinion(new Minion(enemyMinionInfo[0], 0, enemyMinionInfo[1], enemyMinionInfo[2], enemyMinionInfo[3], 0, 0, 0, 0, 0, 0));
}
alert(this.enemyMinions.length);
});
}
如您所见,我将 this.enemyMinons 声明为类构造函数中的文字,并尝试在初始化方法中为其定义一个值。
done()
回调不使用您的Combat
对象作为this
。在 initialize()
函数中保存指向对象的指针,以便以后可以访问该对象。
Combat.prototype.initialize = function() {
var o = 0;
for(var i = 0; i < partySlots.length; i++) {
if(partySlots[i]) {
this.playerMinions[o] = PlayerCombatMinion(partySlots[i]);
o++;
}
}
this.currentPlayerMinion = this.playerMinions[0];
// this is new
var that= this;
$.ajax({
url: "./api/generateEnemyCombatMinions.php",
cache: false
})
.done(function( html ) {
var response = html.split(":::");
for(var i = 0; i < response.length; i++) {
var enemyMinionInfo = response[i].split("::");
// use "that" here instead of "this"
that.enemyMinions[i] = new EnemyCombatMinion(new Minion(enemyMinionInfo[0], 0, enemyMinionInfo[1], enemyMinionInfo[2], enemyMinionInfo[3], 0, 0, 0, 0, 0, 0));
}
alert(that.enemyMinions.length);
});
}
相关文章:
- 未捕获的类型错误:无法设置属性'背景'的未定义
- 将属性设置为未定义时未通知观察者
- 打字稿显示不能设置未定义的属性,如何解决
- Angular 2:在OnInit期间设置的属性在模板上未定义
- Highcharts无法设置属性'的值;要点':对象为null或未定义
- 无法设置属性'round'的未定义
- 未捕获类型错误:无法设置未定义的属性“操作”
- 快速会话 无法设置未定义的属性“id”
- 节点.js未捕获的异常类型错误:无法设置未定义的预处理 ''
- 如何处理 getJSON 调用上的“未捕获类型错误:无法设置未定义的属性'prop'”
- 在 JavaScript 对象中添加子对象时获取“无法设置未定义的属性'项目'”
- 在 javascript 中使用它获取未定义的设置对象的属性值
- IE错误:无法设置属性'的值;样式':对象为null或未定义
- 未捕获的类型错误:无法设置属性'vX'的未定义
- 无法调用方法'应用'关于为jquery谷歌地图插件设置方向的未定义
- JS原型无法设置属性'moveRight'的未定义
- 角度防止将模型设置为无效的未定义
- 无法设置/读取未定义的属性
- [可能的错误]数组中作为对象属性的值设置为未定义
- Javascript requestData未定义,尽管为JSON设置了var