JavaScript. Programowanie obiektowe - ebook
JavaScript. Programowanie obiektowe - ebook
Poznaj obiektowe możliwości JavaScript!
- Jak rozpocząć przygodę z językiem JavaScript?
- Jak rozszerzać obiekty wbudowane?
- Jak pracować w środowisku przeglądarki?
JavaScript jest obiektowym, skryptowym językiem programowania. Choć swą błyskotliwą karierę język ten rozpoczął ponad dwanaście lat temu, swoimi możliwościami wciąż potrafi zaskoczyć nawet doświadczonego programistę. Ostatnio - dzięki technologii AJAX - znów osiągnął on swą szczytową formę. Wykorzystując w odpowiedni sposób jego właściwości, sprawisz, że twój serwis WWW stanie się bardziej interaktywny i dynamiczny.
Dzięki tej książce dowiesz się, w jaki sposób użyć do swoich celów obiektowych możliwości języka JavaScript. Jednak zanim zapoznasz się z tymi tematami, autor w niezwykle przejrzysty sposób przedstawi Ci podstawy tego języka. Zobaczysz, w jaki sposób działają funkcje, pętle oraz model DOM. Ponadto nauczysz się korzystać ze wzorców projektowych, wyrażeń regularnych oraz prototypów. Pomimo zaawansowanej tematyki poruszanej przez autora tej książki dzięki przejrzystemu językowi i klarownemu układowi stanowi ona świetną lekturę również dla początkujących programistów.
- Pojęcia związane z programowaniem obiektowym
- Typy danych, tablice, pętle, sterowanie wykonaniem
- Wykorzystanie funkcji
- Domknięcia
- Obiekty wbudowane
- Zastosowanie konstruktorów
- Tablice asocjacyjne
- Użycie prototypów
- Rozszerzanie obiektów wbudowanych
- Dziedziczenie
- Praca w środowisku przeglądarki (modele BOM i DOM)
- Wzorce kodowania i wzorce projektowe
Od podstaw do sprawnego programowania obiektowego!
Spis treści
O autorze (13)
O recenzentach (15)
Przedmowa (19)
- Co znajdziesz w tej książce? (19)
- Konwencje (20)
Rozdział 1. Wprowadzenie (23)
- Trochę historii (24)
- Zapowiedź zmian (25)
- Teraźniejszość (26)
- Przyszłość (26)
- Programowanie obiektowe (27)
- Obiekty (27)
- Klasy (28)
- Kapsułkowanie (28)
- Agregacja (29)
- Dziedziczenie (29)
- Polimorfizm (30)
- Programowanie obiektowe - podsumowanie (30)
- Konfiguracja środowiska rozwijania aplikacji (31)
- Niezbędne narzędzia (31)
- Korzystanie z konsoli Firebug (32)
- Podsumowanie (33)
Rozdział 2. Proste typy danych, tablice, pętle i warunki (35)
- Zmienne (35)
- Wielkość liter ma znaczenie (36)
- Operatory (37)
- Proste typy danych (40)
- Ustalanie typu danych - operator typeof (41)
- Liczby (41)
- Liczby ósemkowe i szesnastkowe (41)
- Wykładniki potęg (42)
- Nieskończoność (43)
- NaN (45)
- Łańcuchy znaków (45)
- Konwersje łańcuchów (46)
- Znaki specjalne (47)
- Typ boolean (48)
- Operatory logiczne (49)
- Priorytety operatorów (51)
- Leniwe wartościowanie (52)
- Porównywanie (53)
- Undefined i null (54)
- Proste typy danych - podsumowanie (56)
- Tablice (56)
- Dodawanie i aktualizacja elementów tablicy (57)
- Usuwanie elementów (58)
- Tablice tablic (58)
- Warunki i pętle (60)
- Bloki kodu (60)
- Warunki if (61)
- Sprawdzanie, czy zmienna istnieje (62)
- Alternatywna składnia if (63)
- Switch (63)
- Pętle (65)
- Pętla while (66)
- Pętla do...while (66)
- Pętla for (66)
- Pętla for...in (69)
- Bloki kodu (60)
- Komentarze (70)
- Podsumowanie (71)
- Ćwiczenia (71)
Rozdział 3. Funkcje (73)
- Czym jest funkcja? (74)
- Wywoływanie funkcji (74)
- Parametry (74)
- Funkcje predefiniowane (76)
- parseInt() (76)
- parseFloat() (78)
- isNaN() (79)
- isFinite() (79)
- Encode/Decode URIs (80)
- eval() (80)
- Bonus - funkcja alert() (81)
- Zasięg zmiennych (81)
- Funkcje są danymi (83)
- Funkcje anonimowe (84)
- Wywołania zwrotne (84)
- Przykłady wywołań zwrotnych (85)
- Funkcje samowywołujące się (87)
- Funkcje wewnętrzne (prywatne) (87)
- Funkcje, które zwracają funkcje (88)
- Funkcjo, przepiszże się! (89)
- Domknięcia (90)
- Łańcuch zakresów (91)
- Zasięg leksykalny (91)
- Przerwanie łańcucha za pomocą domknięcia (93)
- Domknięcie 1. (94)
- Domknięcie 2. (95)
- Domknięcie 3. i jedna definicja (96)
- Domknięcia w pętli (96)
- Funkcje dostępowe (98)
- Iterator (99)
- Podsumowanie (100)
- Ćwiczenia (100)
Rozdział 4. Obiekty (103)
- Od tablic do obiektów (103)
- Elementy, pola, metody (105)
- Tablice asocjacyjne (105)
- Dostęp do własności obiektu (106)
- Wywoływanie metod obiektu (107)
- Modyfikacja pól i metod (108)
- Wartość this (109)
- Konstruktory (109)
- Obiekt globalny (110)
- Pole constructor (112)
- Operator instanceof (112)
- Funkcje zwracające obiekty (113)
- Przekazywanie obiektów (114)
- Porównywanie obiektów (114)
- Obiekty w konsoli Firebug (115)
- Obiekty wbudowane (117)
- Object (117)
- Array (118)
- Ciekawe metody obiektu Array (120)
- Function (122)
- Własności obiektu Function (123)
- Metody obiektu Function (125)
- Nowe spojrzenie na obiekt arguments (126)
- Boolean (127)
- Number (128)
- String (130)
- Ciekawe metody obiektu String (132)
- Math (135)
- Date (136)
- Metody działające na obiektach Date (138)
- RegExp (140)
- Pola obiektów RegExp (141)
- Metody obiektów RegExp (142)
- Metody obiektu String, których parametrami mogą być wyrażenia regularne (143)
- search() i match() (143)
- replace() (144)
- Wywołania zwrotne replace (145)
- split() (146)
- Przekazanie zwykłego tekstu zamiast wyrażenia regularnego (146)
- Obsługa błędów za pomocą obiektów Error (146)
- Podsumowanie (150)
- Ćwiczenia (151)
Rozdział 5. Prototypy (155)
- Pole prototype (155)
- Dodawanie pól i metod przy użyciu prototypu (156)
- Korzystanie z pól i metod obiektu prototype (157)
- Własne pola obiektu a pola prototypu (158)
- Nadpisywanie pól prototypu własnymi polami obiektu (159)
- Pobieranie listy pól (160)
- isPrototypeOf() (162)
- Ukryte powiązanie __proto__ (163)
- Rozszerzanie obiektów wbudowanych (165)
- Rozszerzanie obiektów wbudowanych - kontrowersje (166)
- Pułapki związane z prototypami (167)
- Podsumowanie (169)
- Ćwiczenia (170)
Rozdział 6. Dziedziczenie (171)
- Łańcuchy prototypów (172)
- Przykładowy łańcuch prototypów (172)
- Przenoszenie wspólnych pól do prototypu (175)
- Dziedziczenie samego prototypu (177)
- Konstruktor tymczasowy - new F() (178)
- Uber: dostęp do obiektu-rodzica (180)
- Zamknięcie dziedziczenia wewnątrz funkcji (181)
- Kopiowanie pól (182)
- Uwaga na kopiowanie przez referencję! (184)
- Obiekty dziedziczą z obiektów (186)
- Głębokie kopiowanie (187)
- object() (189)
- Połączenie dziedziczenia prototypowego z kopiowaniem pól (190)
- Dziedziczenie wielokrotne (191)
- Miksiny (193)
- Dziedziczenie pasożytnicze (193)
- Wypożyczanie konstruktora (194)
- Pożycz konstruktor i skopiuj jego prototyp (196)
- Podsumowanie (197)
- Studium przypadku: rysujemy kształty (200)
- Analiza (200)
- Implementacja (201)
- Testowanie (204)
- Ćwiczenia (205)
Rozdział 7. Środowisko przeglądarki (207)
- Łączenie JavaScriptu z kodem HTML (207)
- BOM i DOM - przegląd (208)
- BOM (209)
- Ponownie odkrywamy obiekt window (209)
- window.navigator (210)
- Firebug jako ściąga (210)
- window.location (211)
- window.history (212)
- window.frames (213)
- window.screen (214)
- window.open() i window.close() (215)
- window.moveTo(), window.resizeTo() (216)
- window.alert(), window.prompt(), window.confirm() (216)
- window.setTimeout(), window.setInterval() (217)
- window.document (219)
- DOM (219)
- Core DOM i HTML DOM (221)
- Dostęp do węzłów DOM (222)
- Węzeł document (223)
- documentElement (224)
- Węzły-dzieci (224)
- Atrybuty (225)
- Dostęp do zawartości znacznika (226)
- Uproszczone metody dostępowe DOM (227)
- Rówieśnicy, body, pierwsze i ostatnie dziecko (228)
- Spacer przez węzły DOM (230)
- Modyfikacja węzłów DOM (230)
- Modyfikacja stylu (231)
- Zabawa formularzami (232)
- Tworzenie nowych węzłów (233)
- Metoda w pełni zgodna z DOM (234)
- cloneNode() (235)
- insertBefore() (236)
- Usuwanie węzłów (236)
- Obiekty DOM istniejące tylko w HTML (238)
- Starsze sposoby dostępu do dokumentu (239)
- document.write() (240)
- Pola cookies, title, referrer i domain (240)
- Zdarzenia (242)
- Kod obsługi zdarzeń wpleciony w atrybuty HTML (242)
- Pola elementów (242)
- Obserwatorzy zdarzeń DOM (243)
- Przechwytywanie i bąbelkowanie (244)
- Zatrzymanie propagacji (246)
- Anulowanie zachowania domyślnego (248)
- Obsługa zdarzeń w różnych przeglądarkach (248)
- Typy zdarzeń (249)
- XMLHttpRequest (250)
- Wysłanie żądania (251)
- Przetworzenie odpowiedzi (252)
- Tworzenie obiektów XHR w IE w wersjach starszych niż 7 (253)
- A jak asynchroniczny (254)
- X jak XML (254)
- Przykład (254)
- Podsumowanie (257)
- Ćwiczenia (258)
Rozdział 8. Wzorce kodowania i wzorce projektowe (261)
- Wzorce kodowania (262)
- Izolowanie zachowania (262)
- Warstwa treści (262)
- Warstwa prezentacji (263)
- Zachowanie (263)
- Przykład wydzielenia warstwy zachowania (263)
- Przestrzenie nazw (264)
- Obiekt w roli przestrzeni nazw (264)
- Konstruktory w przestrzeniach nazw (265)
- Metoda namespace() (266)
- Rozgałęzianie kodu w czasie inicjalizacji (267)
- Leniwe definicje (268)
- Obiekt konfiguracyjny (269)
- Prywatne pola i metody (270)
- Metody uprzywilejowane (271)
- Funkcje prywatne w roli metod publicznych (272)
- Funkcje samowywołujące się (273)
- Łańcuchowanie (273)
- JSON (274)
- Izolowanie zachowania (262)
- Wzorce projektowe (275)
- Singleton (276)
- Singleton 2 (276)
- Zmienna globalna (277)
- Pole konstruktora (277)
- Pole prywatne (278)
- Fabryka (278)
- Dekorator (280)
- Dekorowanie choinki (280)
- Obserwator (282)
- Podsumowanie (285)
Dodatek A: Słowa zarezerwowane (287)
- Lista słów zarezerwowanych mających specjalne znaczenie w języku JavaScript (287)
- Lista słów zarezerwowanych na użytek przyszłych implementacji (288)
Dodatek B: Funkcje wbudowane (291)
Dodatek C: Obiekty wbudowane (295)
- Object (295)
- Składowe konstruktora Object (296)
- Składowe obiektów tworzonych przez konstruktor Object (296)
- Array (298)
- Składowe obiektów Array (298)
- Function (301)
- Składowe obiektów Function (301)
- Boolean (302)
- Number (302)
- Składowe konstruktora Number (303)
- Składowe obiektów Number (304)
- String (304)
- Składowe konstruktora String (305)
- Składowe obiektów String (305)
- Date (308)
- Składowe konstruktora Date (308)
- Składowe obiektów Date (309)
- Math (311)
- Składowe obiektu Math (312)
- RegExp (313)
- Składowe obiektów RegExp (314)
- Obiekty Error (315)
- Składowe obiektów Error (315)
Dodatek D: Wyrażenia regularne (317)
Skorowidz (323)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-5813-8 |
Rozmiar pliku: | 2,7 MB |