Javascript 数组中声明对象的函数未定义--否!不是吗?

Javascript 数组中声明对象的函数未定义--否!不是吗?,javascript,runtime-error,undefined-function,Javascript,Runtime Error,Undefined Function,这是我的密码: function insertMonsters() { var monsterPositions = [2,8,13,15,22]; for ( var i in monsterPositions ) { monsters[i] = createMonster("monster",monsterPositions[i],1); document.getElementById(monsters[i].currentPosition).innerHTML = mo

这是我的密码:

function insertMonsters() {

var monsterPositions = [2,8,13,15,22];

for ( var i in monsterPositions ) {
    monsters[i] = createMonster("monster",monsterPositions[i],1);
    document.getElementById(monsters[i].currentPosition).innerHTML = monsters[i].displayText;
    }

}

function createMonster(name,startingPoint,level){
    this.displayText = "<span>" + name + "</span>";
    this.currentPosition = startingPoint;
    this.level = level;
    this.health = function(){ return 25 + ( this.level * 15 );};
    this.strength = function(){return ( this.level * 3 );};
}

我真的不知道出了什么问题,请帮帮我。

它看起来像是未定义的
怪物,而不是createMonster。确保初始化
怪物
阵列,您应该可以

你可以把第7行改为

var monsters = [];
设置怪物时,您还缺少一个
new
语句

你需要

monsters[i] = new createMonster("monster",monsterPositions[i],1);

它看起来像是未定义的
怪物
,而不是创建的怪物。确保初始化
怪物
阵列,您应该可以

你可以把第7行改为

var monsters = [];
设置怪物时,您还缺少一个
new
语句

你需要

monsters[i] = new createMonster("monster",monsterPositions[i],1);


我之前确实定义了它,我只是没有包括我的全部代码,无论如何这不会是一个错误,当我想要一个全局变量时,它只会给我一个局部变量。它没有在你链接到的代码中初始化。这就是我在那里看到的错误。当我加载页面时,怪物没有定义,并在Chrome的控制台日志中抛出一个错误script@php_nub_qq因为它创建了一个对象,就像编写
object()
而不是
newobject()
@php\u nub\u qq一样,Javascript并没有区分构造函数和“普通函数”新功能可以用于任何功能。它只是创建一个新对象并将该对象绑定到函数(以便函数中的
this
指向新对象)。由于createMonster函数正在对其执行操作,并且没有返回任何内容,因此我假设它将用作
new
的构造函数,我之前确实定义了它,我只是没有包含我的全部代码,无论如何,这不会是一个错误,当我想要一个全局变量时,它只会给我一个局部变量。它不会在你链接到的代码中初始化。这就是我在那里看到的错误。当我加载页面时,怪物没有定义,并在Chrome的控制台日志中抛出一个错误script@php_nub_qq因为它创建了一个对象,就像编写
object()
而不是
newobject()
@php\u nub\u qq一样,Javascript并没有区分构造函数和“普通函数”新功能可以用于任何功能。它只是创建一个新对象并将该对象绑定到函数(以便函数中的
this
指向新对象)。由于createMonster函数正在对其执行操作,并且不返回任何内容,我以为它是用来作为
new
@BrianMayer的构造函数的,我之前做的只是没有把我的整个程序放在这里谢谢思想提示:不要用
for..in
循环数组,而是一个常规的
for
循环。@php\u nub\u qq没有完全理解,但我现在正在尝试…@php\u nub\u qq…仍然没有任何线索知道发生了什么onDisregard我的评论。仍然looking@BrianMayer我之前做的只是没有把我的整个程序放在这里谢谢思想提示:不要用
for..in
循环数组,而是一个常规的
for
循环。@php\u nub\u qq没有完全理解,但我现在正在尝试…@php\u nub\u qq…仍然没有任何线索显示我的评论。还在看