我不明白为什么我不能创建新对象
错误: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);
答案 0 :(得分:1)
您正尝试设置this.gameAnimals
的第0个元素。
但是,this.gameAnimals
不存在,因为Game
对象没有私有成员gameAnimals
。因此它是undefined
,然后您尝试设置属性。
我认为您可能只是gameAnimals
,而不是this
的前缀。 (或者,如果那是你真正的意思,你首先需要创建this.gameAnimals
。)
答案 1 :(得分:0)
在尝试在for循环中为其赋值之后,声明变量gameAnimals
。首先尝试定义数组。