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