Javascript 为什么Array.apply()设置会导致未定义的索引?

Javascript 为什么Array.apply()设置会导致未定义的索引?,javascript,arrays,Javascript,Arrays,在构造函数中,我创建了一个二维数组,如下所示: this.grid = Array.apply(null, Array(3)).map((el, i) => { return Array.apply(null, Array(3)).map((el, i) => { return { key1: null, key2: null }; }); }); 在我console.log(t

在构造函数中,我创建了一个二维数组,如下所示:

this.grid = Array.apply(null, Array(3)).map((el, i) => {
      return Array.apply(null, Array(3)).map((el, i) => {
        return {
          key1: null,
          key2: null
        };
      });
    });
在我
console.log(this.grid)
之后,我得到了一个包含对象和空属性的二维数组。但是如果我尝试
console.log(JSON.stringify(this.grid[0][1])
[1]

类网格{
构造函数(){
this.grid=Array.apply(null,数组(3)).map((el,i)=>{
返回数组.apply(null,数组(3)).map((el,i)=>{
返回{
键1:null,
键2:空
};
});
});
}
}
//在另一个外部类中使用require()并实例化如下:
设网格=新网格();
控制台日志(网格);

console.log(JSON.stringify(grid[0][1])
名为
grid
的变量有一个名为
grid
的属性,它是包含内部数组的外部数组。因此,要引用内部数组,请访问
grid.grid
。否则,仅引用
grid
即可获得实例,而不是外部数组

类网格{
构造函数(){
this.grid=Array.apply(null,数组(3)).map((el,i)=>{
返回数组.apply(null,数组(3)).map((el,i)=>{
返回{
键1:null,
键2:空
};
});
});
}
}
//在另一个外部类中使用require()并实例化如下:
设网格=新网格();

console.log(JSON.stringify(grid.grid[0][1]))
已编辑。现在代码段中的示例(在浏览器控制台中运行)再现了问题中提到的结果。