为什么我得到错误'不能设置属性'0'未定义# 39;

Why I get error 'Cannot set property '0' of undefined'

本文关键字:属性 未定义 设置 为什么 错误 不能      更新时间:2023-09-26

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

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

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

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

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

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