3 svar
44 visningar
nutella143 79
Postad: 17 feb 2019 Redigerad: 17 feb 2019

anropa metod

får inte till så att metoden summa() ska anropas med en alertruta när man trycker på knappen..

 

 

<script>

class frukt
{
constructor(name,pris,antal)
{
this.name = name;
this.pris = pris;
this.antal = antal;
}

summa()
{
return this.pris * this.antal;
}

}

frukter= [];

frukter[0] = new vara("jordgubbar",5,10);
frukter[1] = new vara("äpple",8,4);


totalpris=0;
for(i=0;frukter.length > i;i++)
{
alert( frukter[i].name +": "+ frukter[i].pris +"kr "+ frukter[i].antal +"st " );

totalpris = totalpris + frukter[i].summa();

}


</script>

<body>

<form>
<input type="button" value="Tot pris" onclick="alert('Totalpris: ' +summa.call(totalpris))" > >
</form>
</body>

emilg 99
Postad: 17 feb 2019

Var försöker du köra den här koden? Om det är i Chrome, tryck Ctrl + Shift + J för att komma till konsolen så kan du se vilka fel din kod genererar. (Övriga webbläsare har också något liknande).

Lite svårt att se exakt vad du försöker göra. Du har ju alert-funktionen inuti en for-loop där också. (Tips: använd console.log("sträng") istället så kan du se i konsolen istället för att få massa popups).

Har du glömt en klass vara? Du skriver new vara(...) men det finns ingen som heter vara.

nutella143 79
Postad: 18 feb 2019
emilg skrev:

Var försöker du köra den här koden? Om det är i Chrome, tryck Ctrl + Shift + J för att komma till konsolen så kan du se vilka fel din kod genererar. (Övriga webbläsare har också något liknande).

Lite svårt att se exakt vad du försöker göra. Du har ju alert-funktionen inuti en for-loop där också. (Tips: använd console.log("sträng") istället så kan du se i konsolen istället för att få massa popups).

Har du glömt en klass vara? Du skriver new vara(...) men det finns ingen som heter vara.

 

det är jag som missat ändra namnet där på vara hehe

kod:


<script>

class frukt
{
constructor(name,pris,antal)
{
this.name = name;
this.pris = pris;
this.antal = antal;
}

summa()
{
return this.pris * this.antal;

}

frukter= [];

frukter[0] = new frukter("jordgubbar",5,10);
frukter[1] = new frukter("äpple",8,4);


totalpris=0;
for(i=0;frukter.length > i;i++)
{
alert( frukter[i].name +": "+ frukter[i].pris +"kr "+ frukter[i].antal +"st " );

totalpris = totalpris + frukter[i].summa();


</script>

<body>

<form>
<input type="button" value="Tot pris" onclick="alert('Totalpris: ' +summa.call(totalpris))" > >
</form> 
</body>

 

det jag vill är att totalpriset ska visas när man trycker på knappen.. vill anropa metoden summa.. men det är något jag gör fel där kan bara inte se vad... startar den i chrome så ska kolla som du skrev ;)

Laguna Online 3789
Postad: 18 feb 2019

Nu står det "new frukter" fast klassen heter frukt.

Har koden som räknar ut totalpris körts när du trycker på knappen? I så fall kan det stå

onclick="alert('Totalpris: ' +totalpris)"

skulle jag tro.

Svara Avbryt
Close