Autor Zpráva
Professor
Profil *
Zdravím, učím sa JavaScript a neviem rozlúsknuť jeden problém. Vytvoril som script, ktorý vám vypočíta koľko ti ostáva rokov života. Mal by fungovať na princípe odčítania tvojho veku od čísla 70. Takto môj script vypadá:

V HEAD

function clovek(meno, vek){
    this.meno = meno;
    this.vek = vek;
} 

function rokovOstava(){
  var ostavaTi = 70 - clovek(vek);
}

var Professor = new clovek("Matej", 14);

a potom: v BODY

document.write(ostavaTi);

No nič sa nevypíše, prosil by som o vysvetlenie.


Konečne sa mi to podarilo. Fungujúci kód:

V HEAD

function clovek(meno, vek){
   this.meno = meno;
   this.vek = vek;
   this.rokovDoSmrti = kolkoOstava;
}

function kolkoOstava() {
    var ostavaTi = 70 - this.vek;
    return ostavaTi;
}

var matej = new clovek("Matej", 14);

a v BODY

document.write(matej.rokovDoSmrti());
juriad
Profil
Těch chyb je tam hromada.

První čtyři řádky jsou OK. Jen je zvykem konstruktor třídy nazývat Velkým písmenem.

Pak máš funkci, která zavolá funcki clovek (tedy konstuktor člověka, ale jako funkci) a předá jí jeden argument, který není definovaný.
Výsledek uloží do lokální proměnné a tím ta funkce skončí.
Jenže tato funkce se nikdy nezavolá.

Na 10. řádku vytvoříš člověka, to je OK. Jen je teď naopak konvence proměnné psát malými písmeny.

A potom v BODY zavoláš document.write, ale předáš mu neexistující proměnnou (je to jen shoda jmen s lokální proměnnou používanou uvnitř jedné funkce.


Opravená verze může vypadat takto (pomiňme užitečnost třídy Clovek):
http://kod.djpw.cz/yqib

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: