webmaster webmastering webdesign

Jesteś tutaj: webmade.org >> kursy online >> kurs javascript >> Część 4

Obiekty.

autor: Piotr Rzeźniczak, ostatnia modyfikacja: 2007-06-25

szukaj: obiekty JavaScript obiekty JavaScript kurs JavaScript kurs JavaScript

Czasami zachodzi sytuacja, w której potrzeba nam "zmiennej" bardziej szczegółowo opisującej rzecz, stan, osobę czy zjawisko której dotyczy. Jeżeli opisujemy np. samochód, to nie wystarczy nam, gdy podamy tylko rok produkcji, tylko jego markę, lub maksymalną prędkość, czy pojemność silnika.

Chcielibyśmy mieć możliwość opisania wszystkich właściwości samochodu, jakie nam będą potrzebne i jednocześnie przy tym nie robić bałaganu w kodzie, poprzez wiele niepotrzebnych zmiennych, lub innych zastępczych rozwiązań, typu tablice. Do tego właśnie służą obiekty. Odzwierciedlają one "coś" ze świata rzeczywistego w świat komputera.

Obiekty są konstrukcjami programistycznymi posiadającymi tzw. właściwości, którymi mogą być zmienne lub inne obiekty. Z obiektami powiązane są funkcje wykonujące operacje na jego właściwościach, a nazywamy je metodami.

Do właściwości danego obiektu możemy się dostać używając zapisu:

nazwa_obiektu.nazwa_właściwości

Np. jeśli mamy obiekt "auto", może on mieć właściwości: marka, rok, cena. Aby określić właściwości naszego obiektu będziemy musieli wykonać instrukcje:

auto.marka="Opel Omega"
auto.rok=1996
auto.cena=25000

Można również skorzystać z innej notacji w zależności od upodobań: nazwa_obiektu[nazwa_właściwości] np. auto[cena]

Aby korzystać z obiektów w naszych skryptach, musimy go zdefiniować, tworząc funkcję zwaną konstruktorem, a następnie powołać do życia za pomocą operatora new.

function auto(marka,rok,cena,wlasciciel) { // w sekcji HEAD
this.marka=marka
this.rok=rok
this.cena=cena
this.wlasciciel=wlasciciel
}

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

posiadacz=new osoba("Jan","Kowalski") // dalej w kodzie HTML
bryka=new auto("Ferrari",2003,200000,posiadacz)
document.write("Marka: "+ bryka.marka +" rocznik: "+ bryka.rok +" cena: "+ bryka.cena)
document.write("<br>Wlasciciel: "+ auto.wlasciciel.imie +" "+ auto wlasciciel.nazwisko)

Jednak takie wyciąganie danych z obiektów wcale nie czyni ich wygodnymi w użyciu - właśnie dlatego mamy dodatkowo możliwość zdefiniowania metod. Do naszego przykładu dodamy metody wyświetlające właściwości naszych obiektów. Modyfikujemy kod tak jak poniżej:

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
}
// tu koniec funkcji pisanych w sekcji HEAD
// potem gdzieś gdzie nam potrzeba:

posiadacz=new osoba("Jan","Kowalski")
bryka=new auto("Ferrari",2003,200000,posiadacz)
bryka.pokaz() // pokazuje nam wszystkie wlasciwosci naszego obiektu

Jak widać powyżej, stworzenie metod wyświetlających dane samochodów, procentuje w wypadku, gdy piszemy skrypty na stronę wielokrotnie wyświetlającą wiele różnych samochodów - np. z prywatnej kolekcji ;) Wtedy już martwimy się tylko o odpowiednie stworzenie obiektów, a całe wyświetlanie robi za nas jego metoda.

Piotr Rzeźniczak

Zagadnienia poruszane w tej części kursu:

Chcesz zostać programistą?

Poznaj 6 kroków do efektywnej
nauki programowania!

 

valid XHTML
valid CSS
© 2004-2008 copyright by webmade.org