所以我有一个看起来像这样的课程:
class Car {
constructor(name, pos) {
this.carName = name;
this.carPos = pos;
}
}
然后我最终使用此类创建一个对象数组:
newCar = new Car("Fusion","100 100");
let carManifest = [newCar]
我稍后在代码中继续将
carManifest.push()
其他几个 Car
对象放入数组中,并构建它。最终我遇到了一个 for 循环:
for (index = 0; index < carManifest.length; index++) {
if(carManifest[index].carName === 'Honda')
<Do Stuff>
}
每当我访问
carManifest[index].carName
时,我都会得到“未定义”。我还在对象中为同一变量提供了一个 get 方法,但在这种情况下使用该方法甚至无法编译。我知道数组本身没有这些变量,但据我所知,在 JS 中没有办法像在 Java 和 C 中那样将数组声明为特定类。
有人可以帮我吗?我是 JS 新手,在过去的一个小时里一直被这个问题困扰。如果没有足够的信息,我会很高兴更新。谢谢!
注意:不确定这是否重要,但我正在使用 Node.js
更改您的代码
let carManifest = [newCar]
将项目推入数组
carManifest.push(newCar);
/*
function Car (name, pos) {
this.carName = name;
this.carPos = pos;
}
*/
class Car {
constructor(name, pos) {
this.carName = name;
this.carPos = pos;
}
}
newCar = new Car("Fusion","100 100");
let carManifest = [];
carManifest.push(newCar);
for (index = 0; index < carManifest.length; index++) {
if(carManifest[index].carName === 'Fusion'){
console.log(carManifest[index].carName);
}
}
您是否将其他变量或对象推入同一个数组中?您显示的代码示例没有任何问题,您可以通过这种方式访问对象的变量。您必须显示更多代码,您到底在哪里未定义?