Darmowe Forum
Maj 14, 2024, 10:17:08 *
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 2128 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

swietageometria magicznydom mundodetelenovelas film pssu