Autor | Zpráva | ||
---|---|---|---|
Professor Profil * |
#1 · Zasláno: 14. 12. 2014, 13:50:19 · Upravil/a: Professor
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 |
#2 · Zasláno: 14. 12. 2014, 14:02:53
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 |
||
Časová prodleva: 9 let
|
0