试图访问javascript类中的函数

试图访问javascript类中的函数,javascript,function,class,Javascript,Function,Class,晚上好,如果有人能帮我,我会很高兴的。我正在努力达到我的汽车课的一些功能。首先,我尝试将inpSpeed输入值分配给汽车类功能驱动,然后我想在按下按钮时打印出来以控制所有汽车信息:btnRace,问题是我真的不知道如何调用它们,因为每次调用它们时,它都会显示:“未定义” 以下是我目前的代码: carsArray = []; btnCarName.onclick = function(){ carsArray.push({/*obj.element1, obj.element2, obj

晚上好,如果有人能帮我,我会很高兴的。我正在努力达到我的汽车课的一些功能。首先,我尝试将inpSpeed输入值分配给汽车类功能驱动,然后我想在按下按钮时打印出来以控制所有汽车信息:btnRace,问题是我真的不知道如何调用它们,因为每次调用它们时,它都会显示:“未定义”

以下是我目前的代码:

carsArray = [];

btnCarName.onclick = function(){
    carsArray.push({/*obj.element1, obj.element2, obj.element3*/});
}

btnRace.onclick = function(){

    for(j in carsArray)
    {
        console.log(Car(carsArray[j]));
    }
}


function Car(name,speed)
{
  this.carBrand = name;
  this.speed = speed;
  this.distance = 0;

  this.Drive = function(time)
  {
        if(time > 0)
            return this.distance = (this.speed * (time/10));
  }

  this.printData = function()
  {
    for(var i = 0; i < Car.length; i++)
        {
            console.log('Car brand: ' + this.carBrand);
            console.log('Speed: ' + this.speed);
            console.log('distance: ' + this.Drive());
            console.log('---------------------------');
        }
  }
}
carsArray=[];
btnCarName.onclick=函数(){
carsArray.push({/*obj.element1,obj.element2,obj.element3*/});
}
btnRace.onclick=函数(){
对于(卡萨雷中的j)
{
控制台日志(Car(carsArray[j]);
}
}
功能车(名称、速度)
{
this.carBrand=名称;
速度=速度;
这个距离=0;
this.Drive=函数(时间)
{
如果(时间>0)
返回this.distance=(this.speed*(time/10));
}
this.printData=函数()
{
对于(变量i=0;i
要使
这个
关键字起作用,您必须用
新的
关键字实例化
Car()

var toyota = new Car('toyota', 100)

console.log(toyota.speed);

然而,可能还有一些其他问题。您在哪里定义carsArray?
var Car=new Car(“示例”,0);car.printData()
?但是,您应该从
printData
方法中删除该循环,它只关心当前实例而不是数组。@Bergi因此,如果删除该实例,是否需要指定所需的元素,如:car.printData(carsArray[j].name)?否,
printData
不接受任何参数。如果将
new Car(…)
实例存储在数组中,而不是像我的示例中那样存储
Car
变量,那么它将是
carsArray[i].printData()@Bergi现在我明白了,谢谢,Bergi:)Car.lenght只给我数组长度,因为我用它来打印所有元素。你想得到carsArray的长度吗?嗯,在那个地方我可能应该使用carsArray.lenght,因为我需要访问数组元素,因为我的类没有任何元素。。。我刚刚意识到。。还是我错了?所有的循环本身都是错误的,但我的问题是如何到达printData函数来打印我的所有数组元素?我不完全确定你想要实现什么,但是我认为您可能应该检查
carsArray.length
,因为静态
Cars
构造函数的长度可能不会给您期望的结果-它将返回长度1。是的,我只想打印carsArray的所有元素