为什么我收到错误'无法设置属性'0'未定义'

时间:2013-04-25 09:49:10

标签: javascript object

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

错误: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);

2 个答案:

答案 0 :(得分:1)

您正尝试设置this.gameAnimals的第0个元素。

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

我认为您可能只是gameAnimals,而不是this的前缀。 (或者,如果那是你真正的意思,你首先需要创建this.gameAnimals。)

答案 1 :(得分:0)

在尝试在for循环中为其赋值之后,声明变量gameAnimals。首先尝试定义数组。