Javascript:这个代码段做什么,错误代码uncaughttypeerror:allEnemies.forEach不是一个函数

Javascript:这个代码段做什么,错误代码uncaughttypeerror:allEnemies.forEach不是一个函数,javascript,jquery,Javascript,Jquery,我正在完成一个简单的画布游戏。我得到了这个错误: 未捕获类型错误:allEnemies.forEach不是函数 为什么我会犯这个错误 我在下面展示了我是如何宣布allEnemies的。根据说明,所有的敌人都应该是一组物体 我宣布的敌人是错的还是敌人宣布的目标是错的 这是敌人的声明,我认为他们试图声明一个对象(我从未见过这样的对象声明)我认为这是一个生命,对吗 var Enemy = function() { // Variables applied to each of our inst

我正在完成一个简单的画布游戏。我得到了这个错误:

未捕获类型错误:allEnemies.forEach不是函数

为什么我会犯这个错误

我在下面展示了我是如何宣布allEnemies的。根据说明,所有的敌人都应该是一组物体

我宣布的敌人是错的还是敌人宣布的目标是错的

这是敌人的声明,我认为他们试图声明一个对象(我从未见过这样的对象声明)我认为这是一个生命,对吗

var Enemy = function() {
    // Variables applied to each of our instances go here,
    // we've provided one for you to get started

    // The image/sprite for our enemies, this uses
    // a helper we've provided to easily load images
    this.sprite = 'images/enemy-bug.
以下是整个app.js文件:

    // Enemies our player must avoid
var Enemy = function() {
    // Variables applied to each of our instances go here,
    // we've provided one for you to get started

    // The image/sprite for our enemies, this uses
    // a helper we've provided to easily load images
    this.sprite = 'images/enemy-bug.png';
}

// Update the enemy's position, required method for game
// Parameter: dt, a time delta between ticks
Enemy.prototype.update = function(dt) {
    // You should multiply any movement by the dt parameter
    // which will ensure the game runs at the same speed for
    // all computers.
}

// Draw the enemy on the screen, required method for game
Enemy.prototype.render = function() {
    ctx.drawImage(Resources.get(this.sprite), this.x, this.y);
}

// Now write your own player class
// This class requires an update(), render() and
// a handleInput() method.
var Player = function() {
    // Variables applied to each of our instances go here,
    // we've provided one for you to get started


    this.sprite = 'images/char-pink-girl.png';
}

// Now instantiate your objects.
// Place all enemy objects in an array called allEnemies
// Place the player object in a variable called player
var allEnemies = [];
allEnemies = Enemy;

var player = Player;


// This listens for key presses and sends the keys to your
// Player.handleInput() method. You don't need to modify this.
document.addEventListener('keyup', function(e) {
    var allowedKeys = {
        37: 'left',
        38: 'up',
        39: 'right',
        40: 'down'
    };

    player.handleInput(allowedKeys[e.keyCode]);
});
这是给出错误类型的代码行:

allEnemies.forEach(function(enemy) {
以下是函数声明的其余部分:

function updateEntities(dt) {
        allEnemies.forEach(function(enemy) {
            enemy.update(dt);
        });
        player.update();
    }

第1行中的allEnemies是一个数组。
下一行变为敌方

var allEnemies = [];
allEnemies = Enemy;
敌人
是一种功能。
allEnemies
现在是一个函数


Function.prototype.forEach是
未定义的

在第1行
中,allEnemies
是一个数组。
下一行变为敌方

var allEnemies = [];
allEnemies = Enemy;
敌人
是一种功能。
allEnemies
现在是一个函数

Function.prototype.forEach是
未定义的

问题就在这里

   allEnemies = Enemy;
您将allEnemies声明为数组,但使用上面的语句覆盖了它。现在,allEnemies是一个简单的函数,而不是数组。因此forEach是未定义的

要创建敌人对象阵列,应执行以下操作:

   allEnemies.push(Enemy);
问题就在这里

   allEnemies = Enemy;
您将allEnemies声明为数组,但使用上面的语句覆盖了它。现在,allEnemies是一个简单的函数,而不是数组。因此forEach是未定义的

要创建敌人对象阵列,应执行以下操作:

   allEnemies.push(Enemy);

你肯定想要:
allEnemies.push(敌人)而不是
allEnemies=敌人但我怀疑你的代码中还有很多其他错误,我想做的是将敌人对象放入阵列Allenemy中。这会改变你的答案吗?好的,我这样做了:allEnemies.push(新敌人);-->关于敌人的错误消失了。现在我确实有其他错误,我已经知道代码是不完整的。所以我想说这是答案。我将处理其他问题,并确保这仍然有效。出于某种原因,我看不到这个答案下面的复选标记??你肯定想要:
allEnemies.push(敌人)而不是
allEnemies=敌人但我怀疑你的代码中还有很多其他错误,我想做的是将敌人对象放入阵列Allenemy中。这会改变你的答案吗?好的,我这样做了:allEnemies.push(新敌人);-->关于敌人的错误消失了。现在我确实有其他错误,我已经知道代码是不完整的。所以我想说这是答案。我将处理其他问题,并确保这仍然有效。出于某种原因,我没有看到这个答案下面的复选标记??目标是创建一个对象数组。这种理解会改变你的答案吗?我相信你需要做allEnemies.push(敌人)。我实现了allEnemies.push(敌人),现在我得到了这个错误:未捕获引用错误:allEnemies没有定义。有人能帮我吗。我不知道这意味着什么,因为我将其定义为var allEnemies=[];我认为问题在于加载.js文件的顺序,但我发现engine.js文件中出现了错误,所以我先加载了app.js,但这没有帮助。错误发生在这里,我使用foreach:allEnemies.foreach(函数(敌人){目标是创建一个对象数组。这种理解会改变你的答案吗?我相信你需要做allEnemies.push(敌人)。我实现了allEnemies.push(敌人)现在我得到了这个错误:Uncaught ReferenceError:allEnemies没有定义。有人能帮我吗?我不知道这意味着什么,因为我将它定义为var allEnemies=[];我认为问题在于加载.js文件的顺序,但engine.js文件中出现了错误,因此我首先加载了app.js,但没有帮助。错误发生在这里,我使用foreach:allEnemies.foreach(函数(敌人))在数组上循环{