JavaScript Patterns (eBook) - Stoyan Stefanov

Stoyan Stefanov 

JavaScript Patterns (eBook)

eBook
 
Ob und wann dieser Artikel wieder vorrätig sein wird, ist unbekannt
Nicht lieferbar
Bewerten Empfehlen Merken Auf Lieblingsliste


JavaScript Patterns (eBook)

Worin besteht der klügste Weg, eine JavaScript-Anwendung zu entwickeln? JavaScript Patterns hilft dem Leser bei der Beantwortung dieser Frage mit zahlreichen Code-Patterns und Best-Practices-Beispielen.

Wenn JavaScript-Programmierer nach Lösungen für ihre JavaScript-Objekte, -Funktionen und Vererbungen suchen, dann sind die Entwurfsmuster und Code-Templates in diesem Buch genau das, was sie für eine professionelle Arbeit benötigen.

Ebenso werden in dem Buch Empfehlungen für die bestmögliche Implementierung der Patterns gegeben, immer verbunden mit praxisnahen Beispielen. Darüber hinaus lernt der Leser wichtige Anti-Patterns kennen.


Produktinformation

  • Deutsch
  • ISBN-13: 9783897215993
  • ISBN-10: 3897215985
  • Best.Nr.: 33775987
"Das vorliegende Buch bereitet das an sich sperrige Thema nicht nur sehr verständlich für Design-Pattern-Einsteiger auf, sondern sorgt auch dafür, dass man sich den Stoff merkt. [...] [Es] besticht durch die Vielzahl seiner Beispiele, darunter auch solche für Fortgeschrittene. So findet der Leser hier neben Information pur auch ganz viele Anregungen." - www.php-nuke.de, August 2011 Lesen Sie die ausführliche Rezension unter: http://php-nuke.de/index.php?option=com_content&view=article&id=16&Itemid=9

"Das vorliegende Buch bereitet das an sich sperrige Thema nicht nur sehr verständlich für Design-Pattern-Einsteiger auf, sondern sorgt auch dafür, dass man sich den Stoff merkt. [...] [Es] besticht durch die Vielzahl seiner Beispiele, darunter auch solche für Fortgeschrittene. So findet der Leser hier neben Information pur auch ganz viele Anregungen." - www.php-nuke.de, August 2011 Lesen Sie die ausführliche Rezension unter: hier "Geeignet bis Pflichtlektüre für Profis." - iX, 01/2012
Stoyan Stefanov ist Web-Entwickler bei Yahoo!, arbeitet an YUI mit, er hält Vorträge und bloggt. Zudem ist er an O¿Reilly-Büchern als Autor, Koautor und Fachlektor beteiligt. Stoyan ist Vater des Bildoptimierungs-Tools smush.it und Architekt des Performance-Optimierungstools YSlow 2.0 von Yahoo.

Inhaltsangabe

Inhalt ... 7
Vorwort ... 13
Zielgruppe dieses Buches ... 13
Konventionen in diesem Buch ... 14
Verwendung der Codebeispiele ... 14
Danksagungen ... 15
Quellen ... 15
Leseempfehlungen ... 15
Kapitel 1 – Einführung ... 17
Muster ... 17
JavaScript: Konzepte ... 19
Objektorientiert ... 19
Keine Klassen ... 20
Prototypen ... 20
Umgebung ... 21
ECMAScript 5 ... 21
JSLint ... 22
Die Konsole ... 22
Kapitel 2 – Grundlagen ... 25
Wartbaren Code schreiben ... 25
Wenige globale Variablen verwenden ... 26
Das Problem mit globalen Variablen ... 27
Nebenwirkungen eines vergessenen var ... 28
Zugriff auf das globale Objekt ... 29
Single-var-Muster ... 30
Hoisting: Ein Problem mit verstreuten vars ... 31
for-Schleifen ... 32
for-in-Schleifen ... 34
Eingebaute Prototypen (nicht) erweitern ... 36
switch-Muster ... 37
Implizite Typecasts vermeiden ... 37
eval() vermeiden ... 38
Zahlen umwandeln mit parseInt() ... 39
Code-Richtlinien ... 40
Einrücken ... 40
Geschweifte Klammern ... 41
Position der öffnenden Klammer ... 42
Leerraum ... 43
Namenskonventionen ... 44
Konstruktoren mit Großbuchstaben beginnen ... 45
Wörter trennen ... 45
Andere Namens-Muster ... 45
Kommentare schreiben ... 47
Eine API-Dokumentation schreiben ... 47
YUIDoc-Beispiel ... 48
Schreiben, um gelesen zu werden ... 51
Peer Reviews ... 52
Minifizieren … in der Produktionsumgebung ... 53
JSLint nutzen ... 54
Zusammenfassung ... 55
Kapitel 3 – Literale und Konstruktoren ... 57
Objekt-Literale ... 57
Die Objekt-Literal-Syntax ... 58
Objekte aus einem Konstruktor ... 59
Object-Konstruktor-Überraschung ... 59
Eigene Konstruktor-Funktionen ... 60
Rückgabewerte von Konstruktoren ... 62
Muster zum Erzwingen von new ... 62
Namenskonventionen ... 63
that verwenden ... 63
Selbst aufrufender Konstruktor ... 64
Array-Literal ... 65
Die Array-Literal-Syntax ... 65
Kuriositäten im Array-Konstruktor ... 65
Auf »Array-Haftigkeit« prüfen ... 66
JSON ... 67
Mit JSON arbeiten ... 67
Regexp-Literal ... 68
Regexp-Literal-Syntax ... 69
Wrapper für Primitive ... 70
Fehler-Objekte ... 72
Zusammenfassung ... 72
Kapitel 4 – Funktionen ... 75
Hintergrund ... 75
Mehrdeutige Terminologie ... 76
Deklarationen versus Ausdrücke: Namen und Hoisting ... 77
name-Eigenschaft von Function ... 78
Funktions-Hoisting ... 79
Callback-Muster ... 81
Ein Callback-Beispiel ... 81
Callbacks und Scope ... 83
Asynchrone Event Listener ... 84
Timeouts ... 85
Callbacks in Bibliotheken ... 85
Funktionen zurückgeben ... 86
Selbst-definierende Funktionen ... 86
Immediate Function ... 88
Parameter einer Immediate Function ... 89
Rückgabewerte aus Immediate Functions ... 90
Vorteile und Anwendungsfälle ... 91
Immediate-Object-Initialisierung ... 92
Verzweigungen beim Initialisieren (Init-Time Branching) ... 93
6.8;Funktions-Eigenschaften – Ein Memoisierungs-Muster;95
Konfigurations-Objekte ... 96
Curry ... 98
Anwenden einer Funktion ... 98
Partielle Anwendung ... 99
Currying ... 100
Wann man Currying nutzt ... 102
Zusammenfassung ... 103
Kapitel 5 – Objekt-Erzeugungs-Muster ... 105
Namensraum-Muster ... 105
Namensraum-Funktion ... 107
Abhängigkeiten deklarieren ... 109
Private Eigenschaften und Methoden ... 110
Private Member ... 110
Bevorzugte Methoden ... 111
Privacy-Lücken ... 111
Objekt-Literale und Privacy ... 113
Eigenschaften und Privacy ... 113
Private Funktionen als öffentliche Methoden bereitstellen (Revelation-Muster) ... 114
Modul-Muster ... 115
Bereitstellungs-Modul-Muster ... 117
Module, die Konstruktoren erzeugen ... 118
Globale Variablen in ein Modul importieren ... 119
Sandbox-Muster ... 119
Ein globaler Konstruktor ... 120
Module hinzufügen ... 121
Den Konstruktor implementieren ... 122
Statische Member ... 124
Öffentliche statische Member ... 124
Private statische Member ... 126
Objekt-Konstanten ... 127
Verkettungs-Muster ... 129
Vor- und Nachteile des Verkettungs-Musters ... 130
method()-Methode ... 130
Zusammenfassung ... 132
Kapitel 6 – Muster zum Wiederverwenden von Code ... 133
Klassische versus moderne Vererbungs-Muster ... 133
Erwartete Ergebnisse bei klassischer Vererbung ... 134
8.3;Klassisches Muster Nr. 1 – Das Standard-Muster;135
Der Prototypen-Kette folgen ... 135
Nachteile bei Muster Nr. 1 ... 138
8.4;Klassisches Muster Nr. 2 – Rent-a-Constructor;138
Die Prototypen-Kette ... 139
Mehrfachvererbung bei geliehenen Konstruktoren ... 140
Vor- und Nachteile des Geliehener-Konstruktor-Musters ... 141
8.5;Klassisches Muster Nr. 3 – Rent-and-Set-Prototyp;141
8.6;Klassisches Muster Nr. 4 – Gemeinsamer Prototyp;143
8.7;Klassisches Muster Nr. 5 – Ein temporärer Konstruktor;144
Die Superklasse speichern ... 145
Den Konstruktor-Zeiger zurücksetzen ... 146
Klass ... 147
Prototypische Vererbung ... 149
Diskussion ... 151
Ergänzung in ECMAScript 5 ... 151
Vererbung durch das Kopieren von Eigenschaften ... 152
Mix-Ins ... 154
Methoden ausleihen ... 155
Beispiel: Von Array ausleihen ... 156
Ausleihen und Binden ... 156
Function.prototype.bind() ... 157
Zusammenfassung ... 158
Kapitel 7 – Entwurfsmuster ... 159
Singleton ... 159
new verwenden ... 160
Instanz in einer statischen Eigenschaft ... 161
Instanz in einem Closure ... 162
Fabrik/Factory ... 164
Eingebaute Object-Fabrik ... 166
Iterator ... 167
Dekorierer/Decorator ... 169
Anwendung ... 169
Implementierung ... 170
Implementierung mit einer Liste ... 172
Strategie/Strategy ... 174
Beispiel: Datenvalidierung ... 174
9.6;Fassade/Façade;177
Stellvertreter/Proxy ... 178
Ein Beispiel ... 179
Ein Video-Erweiterer ... 179
Ohne Stellvertreter ... 180
HTML ... 180
Event Handler ... 181
videos-Objekt ... 182
http-Objekt ... 183
Auftritt des Stellvertreters ... 183
Stellvertreter als Cache ... 186
Vermittler/Mediator ... 186
Vermittler-Beispiel ... 187
Beobachter/Observer ... 190
Beispiel Nr. 1: Zeitungs-Subskription ... 190
Beispiel Nr. 2: Das Tastatur-Spiel ... 194
Zusammenfassung ... 197
Kapitel 8 – DOM- und Browser-Muster ... 199
Separation of Concerns ... 199
DOM Scripting ... 201
DOM-Zugriff ... 201
Veränderungen am DOM ... 202
Events ... 204
Event Handling ... 204
Event Delegation ... 206
Langlaufende Skripten ... 207
setTimeout() ... 208
Web Workers ... 208
Remote Scripting ... 209
XMLHttpRequest ... 209
JSONP ... 211
JSONP-Beispiel: Tic-Tac-Toe ... 211
Frames und Image Beacons ... 214
JavaScript-Code ausliefern ... 214
Skripten kombinieren ... 214
Minifizieren und Komprimieren ... 215
Expires-Header ... 216
Ein CDN verwenden ... 216
Strategien zum Laden ... 216
Die Position des -Elements ... 217
HTTP Chunking ... 218
Dynamisches -Element für nicht-blockierende Downloads ... 220
Das -Element anfügen ... 221
Lazy-Loading ... 221
Loading on Demand ... 222
JavaScript im Voraus laden ... 224
Zusammenfassung ... 225
Index ... 227
Mehr von