-1

我不明白为什么我不能创建一个新对象

错误:Uncaught TypeError: Cannot set property '0' of undefined

我在线路代码上遇到错误。 this.gameAnimals[i] = {};

this = Game;
gameAnimals[0] = 'frog';

那为什么我有错误?非常感谢。

var Game = {
    init: function(){
        this.property1 = 1;
        this.property2 = 2;
        this.property3 = 3;
        this.property1000 = 1000;
    },

     cons: function(gameAnimals){

        for(var i = 0; i < gameAnimals.length; i++){
             this.gameAnimals[i] = {};
        }
     },    
};

var gameAnimals = ['frog', 'lion', 'cat'];
Game.cons(gameAnimals);
4

2 回答 2

1

您正在尝试设置 的第零个元素this.gameAnimals

但是,this.gameAnimals不存在,因为该Game对象没有私有成员gameAnimals。因此它是undefined,然后您尝试在其上设置属性。

我想你可能只是说gameAnimals,不加前缀thisthis.gameAnimals(或者,如果这是您真正的意思,您需要先创建。)

于 2013-04-25T09:51:50.190 回答
0

该变量gameAnimals是在您尝试在 for 循环中为其赋值后声明的。尝试先定义数组。

于 2013-04-25T09:51:47.793 回答