Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Nie wyswietla sie napis
Forum PHP.pl > Forum > Przedszkole
blandzi
Zacząlem dzisiaj przygode z js i zatrzmalem sie w dosc banalnym miejscu. Z jednego z kursów umieszczonych w necie wzialem ten kod
Kod
<html>
<head>
<script>
function pokaz_auto() {
dane="Marka: "+ this.marka +" Rocznik: "+ this.rok +" Cena: "+ this.cena
+"<br>"
document.write(dane)
this.wlasciciel.pokaz() // metoda pokaz obiektu osoba
}

function pokaz_osoba() {
dane="imie: "+ this.imie +" nazwisko: "+ this.nazwisko +"<br>"
document.write(dane)
}

function auto(marka,rok,cena,wlasciciel) {
this.marka=marka
this.rok=rok
this.cena=cena
this.wlasciciel=wlasciciel
this.pokaz=pokaz_auto // dodajemy metode pokazujaca dane naszego auta
}

function osoba(imie,nazwisko) {
this.nazwisko=nazwisko
this.imie=imie
this.pokaz=pokaz_osoba // dodajemy metode pokazujaca nasza osobe
}
</script>
</head>
<body><script>
posiadacz=new osoba("Jan","Kowalski")
bryka=new auto("Ferrari",2003,200000,posiadacz)
bryka.pokaz() // pokazuje nam wszystkie wlasciwosci naszego
obiektu</script>
</body>
</html>

i przepisalem go robiac malutkie zmiany w ten sposob
Kod
<html>
<head>
<script>
function pokaz_auto(){
dane="Marka: "+ this.marka +" Rocznik: "+ this.rok
document.write(dane)
this.wlasciciel.pokaz()
}

function pokaz_osoba(){
dane="imie: "+ this.imie +" nazwisko "+ this.nazwisko
document.write(dane)
}

function osoba(imie, nazwisko){
this.imie=imie
this.nazwisko=nazwisko
this.pokaz=pokaz_osoba
}

function auto(marka,rok){
this.marka=marka
this.rok=rok
this.pokaz=pokaz_auto
}
</script>
</head>
<body>
<script>
posiadacz=new osoba("Jan","Kowalski")
bryka=new auto("Ferrari",2003)
bryka.pokaz()
</script>

</body>
</html>

Problem polega na tym ze w tym przerobionym nie wyswietla "imie jan nazwisko Kowalski" i nie moge dojsc do tego dlaczego tak sie dzieje. Moglby mi ktos wyjasnic gdzie jest blad?
ddiceman
Nie dodajesz do elementu auto elementu posiadacz. Powinienes to zawrzec w konstruktorze, albo wywolac niezaleznie:
Kod
posiadacz.pokaz()
, przy czym konsekwencja:
albo usuwasz z pokaz_auto
Kod
this.wlasciciel.pokaz()

albo przerabiasz auto(marka,rok) na:
[code]
function auto(marka,rok,wlasciciel){
this.marka=marka
this.rok=rok
this.pokaz=pokaz_auto
this.wlasciciel=wlasciciel
}
[code]
Hazel
Rzeczywiście malutkie zmiany. Nie jest zdefiniowany właściciel auta. Konstruujesz obiekt auta, tylko wykasowałeś linię o właścicielu i nie można sprzęgnąć tego auta z właścicielem. Po co to kasowałeś? Konstruktor jest w porządku.

Jak zaczynasz to weź sobie lepiej jakiś kurs, a nie ściągasz z neta marne gotowce i będziesz biegał po forum z pytaniami.  dry.gif Nie jest to dobra metoda nauki. Nawet średników nie ma w tym kodzie...
blandzi
dzieki juz zrozumialem na czym polegal moj blad
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.