Darmowe Forum
Grudzieñ 22, 2024, 04:33:52 *
Witamy, Go¶æ. Zaloguj siê lub zarejestruj.
Czy dotar³ do Ciebie email aktywacyjny?

Zaloguj siê podaj±c nazwê u¿ytkownika, has³o i d³ugo¶æ sesji
Aktualno¶ci: Forum zosta³o uruchomione!
 
   Strona g³ówna   Pomoc Zaloguj siê Rejestracja  
Strony: [1]
  Drukuj  
Autor W±tek: Klasy w java script  (Przeczytany 2316 razy)
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« : Kwiecieñ 10, 2015, 07:35:51 »

Podstawowym zadaniem funkcji jest przechowywanie oddzielnego fragmentu kodu. Cech± charakterystyczn± funkcji jest to, ¿e do  funkcji mo¿emy wprowadzaæ parametry i po wprowadzeniu funkcja zwraca warto¶æ. UWAGA: funkcja zwraca warto¶ci , procedura nie zwraca warto¶ci (to jest ró¿nica pomiêdzy funkcj± i procedur±).   
Deklaracja funkcji i jej wywo³anie mo¿e byæ w dowolnym miejscu. Wa¿ne: deklaracja funkcji musi byæ wcze¶niej ni¿ jej wywo³anie.
Zadanie 1. Deklaracja funkcji o nazwie adam, która wy¶wietla napis Piotr.

<HTML>
<HEAD>
<TITLE>Przyklad_1</TITLE>
<SCRIPT>
function adam() {document.write('Piotr');}
adam();
</SCRIPT>

</HEAD>
</HTML>

W tym przyk³adzie deklaracja funkcji adam() i jej wywo³anie znajduj± siê w jednym bloku Java. Deklaracja funkcji polega na podaniu jej nazwy, nawiasów okr±g³ych w których mog± byæ argumenty funkcji, nawiasów klamrowych, w których znajduje siê tre¶æ funkcji: adam(){}

Przyk³ad 2. Umieszczanie argumentów funkcji. W funkcji powitanie pojawi³a siê zmienna tekst. Wywo³anie funkcji z parametrem "Witaj", powoduje podstawienie do zmiennej tekst s³owa Witaj.

<HTML>
<HEAD>
<TITLE>Parametry funkcji</TITLE>
<SCRIPT>
function powitanie(tekst) {document.write(tekst);}
powitanie('Witaj');
powitanie('Do widzenia');
</SCRIPT>

</HEAD>
</HTML>

Przyk³ad 3. Wprowadzanie wielu argumentów do funkcji. Do funkcji mo¿emy wprowadziæ wiêcej ni¿ jeden argument(zmienn±). Wprowadzenie wiêcej ni¿ jednej zmiennej nie oznacza konieczno¶ci jej wykorzystania. Mo¿emy jako argument zadeklarowaæ dwie zmienne a wprowadziæ tylko jedn± w funkcji nale¿y uwzglêdniæ równie¿ tak± sytuacjê. Dzia³anie takie bêdziemy nazywaæ niedoci±¿eniem funkcji. W przedstawionym przyk³adzie wprowadzone powinny byæ dwie zmienne, pierwsza to ci±g znaków, drug± zmienn± jest liczba. Funkcja powitanie pozwala na wy¶wietlenie tre¶ci ( wprowadzonej jako pierwsza zmienna) tyle razy ile wynosi druga liczba. W funkcji ("polecenie if") sprawdzane jest, czy wprowadzona druga zmienna jest liczb±.   

<HTML>
<HEAD>
<TITLE>Wiele parametrów w funkcji</TITLE>
<SCRIPT>
function powitanie(tekst, liczba) {
if (liczba!=parseInt(liczba)||liczba<=0) liczba=1;
for (x=0;x<liczba;x++) document.write(tekst+'<BR>');
}
powitanie('Czesc',5);
powitanie('do widzenia');
powitanie('wprowadzilem zero',0);
powitanie('wprowadzilem liczbe rzeczywista',5.3);
powitanie('Witajcie literki ABC','ABC');
powitanie('Witaj liczbo ujemna',-130);
</SCRIPT>

</HEAD>
</HTML>



« Ostatnia zmiana: Kwiecieñ 10, 2015, 08:52:16 wys³ane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #1 : Kwiecieñ 10, 2015, 08:56:00 »

Deklaracja zmiennych lokalnych w funkcji. Funkcje mog± mieæ zmienne wprowadzane z zewn±trz ( deklarowane w nawiasach okr±g³ych) lub zmienne deklarowane wewn±trz funkcji, które nazywaj± siê zmiennymi lokalnymi. Zmienne lokalne nie s± widoczne poza funkcj±. Nadanie zatem, nadanie warto¶ci zmiennej lokalnej, i próba jej wy¶wietlenia poza funkcj± jest niemo¿liwe. Zatem je¿eli w programie jest kilka funkcji, to ich zmienne lokalne mog± posiadaæ ró¿ne warto¶ci. jest to istotne je¿eli brakuje ju¿ liter na oznaczanie zmiennych. 
Podstawowe regu³y:
1. Zmienna zadeklarowana poza funkcjami nosi nazwê zmiennej globalnej,
2. Zmienna zadeklarowana wewn±trz funkcji nosi nazwê zmiennej lokalnej,
3. Zmienna lokalna o tej samej nazwie wewn±trz funkcji jest wa¿niejsza (przes³ania) zmienn± globaln±.
4. Zmienna lokalna zadeklarowana w funkcji, "nie istnieje" jako dana poza funkcj±.




<HTML>
<HEAD>
<TITLE>Zmienna lokalna</TITLE>
<SCRIPT>
x=5;
function zmienx() {
var x=10;
document.write('Lokalna zmienna x = '+x+'<BR>');}

document.write('Globalna zmienna x =  '+x+'<BR>');
zmienx(x);
document.write('Globalna zmienna x= '+x);
</SCRIPT>

</HEAD>
</HTML>
« Ostatnia zmiana: Kwiecieñ 10, 2015, 09:33:11 wys³ane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #2 : Kwiecieñ 10, 2015, 10:13:32 »

Deklaracja klasy w Java Script.

Z obiektami praktycznie ka¿dy mia³ ju¿ do czynienia. Przyk³adem realnie istniej±cego obiektu mo¿e byæ np. komputer. Obiektem mo¿e byæ budynek, w którym wa¿na informacj± jest liczba pokojów lub jego cena. Je¿eli chcemy wykonaæ bazê danych budynków do sprzeda¿y, to ka¿dy z nich bêdzie posiada³ podobne atrybuty (liczba pokojów, cena).  Budynki  zatem bêd± mia³y pewne cechy wspólne, cechy te powoduj±, ze mo¿emy je zaliczyæ do klasy "budynek mieszkalny". Ka¿dy "budynek mieszkalny" w bazie danych jest jednak inny (ró¿ni± siê liczb± pokojów i cen±), stanowi w programowaniu pojêcie pochodne do klasy , czyli obiekt. Program poni¿ej pokazuje jak deklarowaæ klasê "budynek_m" w Java Script oraz jak tworzyæ pochodne czyli obiekty o nazwie dom1, dom2, ... . 

Ka¿da klasa zbudowana jest z  dwóch elementów:
w³a¶ciwo¶ci -opisuj±cych cechy klasy (liczba pokojów, cena)
metod -  funkcji opisuj±cych cechy klasy (np. czy jest jeszcze do sprzeda¿y, czy zosta³ sprzedany).

W chwili tworzenia klasy okre¶lamy metody i w³a¶ciwo¶ci, które wchodz± w jej sk³ad.  Java Script nie posiada specjalnych narzêdzi do tworzenia klasy jednak mo¿na to zrobiæ do¶æ prosto.

<HTML>
<HEAD>
<TITLE>Baza danych domu</TITLE>
<SCRIPT>
function Budynek(pokoje,cena,garaz) {
this.pokoje=pokoje;
this.cena=cena;
this.garaz=garaz;
}

dom1=new Budynek(4,100000,false);
dom2=new Budynek(5,200000,true);
with (dom1) document.write('Dom 1 posiada '+pokoje+' pokoje , '+(garaz?'tak':'nie')+' garaz, i cena PLN'+cena+'<BR>');
with (dom2) document.write('Dom 2 posiada '+pokoje+' pokoje, '+(garaz?'tak':'nie')+' garaz, i  cena PLN'+cena+'<BR>');
</SCRIPT>

</HEAD>
</HTML>

Przyk³ad 2. Zmodyfikowany program wprowadzaj±cy metodê (funkcjê o nazwie widok) umo¿liwiaj±c± wy¶wietlanie danych.

<HTML>
<HEAD>
<TITLE>Baza danych domu 1</TITLE>
<SCRIPT>
function Budynek(nazwa,pokoje,cena,garaz) {
this.nazwa;
this.pokoje=pokoje;
this.cena=cena;
this.garaz=garaz;
this.widok=widok;
};
function widok() {
with (this) document.write(nazwa+' posiada '+pokoje+' pokoje, '+(garaz?'tak':'nie')+' garaz,  i cena PLN = '+cena+'<BR>');
};

dom1=new Budynek('Dom Wojtka',4,100000,false);
dom2=new Budynek('Dom Zosi',5,200000,true);
dom1.widok();
dom2.widok();
</SCRIPT>

</HEAD>
</HTML>
 
« Ostatnia zmiana: Kwiecieñ 10, 2015, 10:38:11 wys³ane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #3 : Kwiecieñ 10, 2015, 11:02:28 »

Deklaracja klasy i deklaracja prototypu metody (funkcji).
W poprzednich przyk³adach deklaracja metody widok(), by³a okropnie "pamiêcio-¿erna". Ka¿da deklaracja obiektu klasy budynek powodowa³a deklaracjê w klasie metody widok(). Wprowadzenie prototypu metody pozwala tylko raz zadeklarowaæ metodê, która bêdzie przypisywana do obiektu dopiero w chwili jej wywo³ania. Jak ogranicza to wielko¶æ pamiêci zadeklarowanej przez program mo¿na oceniæ tworz±c 10000 rekordów obiektów dom, z których ka¿dy posiada wbudowan± funkcjê widok. Tworzy to 10000 funkcji widok. Je¿eli zadeklarujemy prototyp metody widok(), to niezale¿nie od liczby nowych obiektów deklarujemy tylko jedn± wspóln± metodê widok().


<HTML>
<HEAD>
<TITLE>Baza danych domów</TITLE>

<SCRIPT>
function Budynek(nazwa,pokoje,cena,garaz) {
this.nazwa;
this.pokoje=pokoje;
this.cena=cena;
this.garaz=garaz;
};
function widok() {
with (this) document.write(nazwa+' posiada '+pokoje+' pokoje, '+(garaz?'tak':'nie')+' garaz,  i cena PLN = '+cena+'<BR>');
};
Budynek.prototype.widok=widok;
dom1=new Budynek('Dom Wojtka',4,100000,false);
dom2=new Budynek('Dom Zosi',5,200000,true);
dom1.widok();
dom2.widok();
</SCRIPT>

</HEAD>
</HTML>
« Ostatnia zmiana: Kwiecieñ 10, 2015, 11:05:49 wys³ane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #4 : Kwiecieñ 10, 2015, 11:10:58 »

Deklaracja klasy i deklaracja prototypu sta³ej.
Wprowad¼my teraz now± metodê (koszt), która oblicza koszty ca³kowite zakupu domu, cena powiêkszona o mar¿ê sprzedaj±cego i koszty obs³ugi. Podobnie  jak w poprzednim przypadku mar¿ê i stopê podatku mo¿na zadeklarowaæ jako prototypy sta³ych.   

<HTML>
<HEAD>
<TITLE>Baza danych domów</TITLE>

<SCRIPT>
function Budynek(nazwa,pokoje,cena,garaz) {
this.nazwa;
this.pokoje=pokoje;
this.cena=cena;
this.garaz=garaz;
};
function widok() {
with (this) document.write(nazwa+' posiada '+pokoje+' pokoje, '+(garaz?'tak':'nie')+' garaz,  i cena PLN = '+cena+'<BR>');
};
function koszt() {
with (this) document.write(nazwa+' ca³kowita op³ata za budynek w PLN wynosi: '+eval(cena+oplata+cena*prowizja)+'<BR>');
}
Budynek.prototype.widok=widok;
Budynek.prototype.koszt=koszt;
Budynek.prototype.prowizja=.01;
Budynek.prototype.oplata=1000;

dom1=new Budynek('Dom Wojtka',4,100000,false);
dom2=new Budynek('Dom Zosi',5,200000,true);
dom1.widok();
dom2.widok();
dom1.koszt();
dom2.koszt();
</SCRIPT>

</HEAD>
</HTML>
« Ostatnia zmiana: Kwiecieñ 10, 2015, 11:16:38 wys³ane przez admin » Zapisane
Strony: [1]
  Drukuj  
 
Skocz do:  

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap

Polityka cookies
Darmowe Fora | Darmowe Forum

zlotasiodemka spw gang-nd polski-serwer-rpg articz