基本信息
源码名称:JavaScript Patterns 2010.pdf
源码大小:3.56M
文件格式:.pdf
开发语言:js
更新时间:2021-09-13
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

Table of Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Patterns 1
JavaScript: Concepts 3
Object-Oriented 3
No Classes 4
Prototypes 4
Environment 5
ECMAScript 5 5
JSLint 6
The Console 6
2. Essentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Writing Maintainable Code 9
Minimizing Globals 10
The Problem with Globals 11
Side Effects When Forgetting var 12
Access to the Global Object 13
Single var Pattern 13
Hoisting: A Problem with Scattered vars 14
for Loops 15
for-in Loops 17
(Not) Augmenting Built-in Prototypes 19
switch Pattern 20
Avoiding Implied Typecasting 21
Avoiding eval() 21
Number Conversions with parseInt() 23
Coding Conventions 23
Indentation 24
Curly Braces 24
vii
Opening Brace Location 25
White Space 26
Naming Conventions 28
Capitalizing Constructors 28
Separating Words 28
Other Naming Patterns 29
Writing Comments 30
Writing API Docs 30
YUIDoc Example 31
Writing to Be Read 34
Peer Reviews 35
Minify…In Production 36
Run JSLint 37
Summary 37
3. Literals and Constructors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Object Literal 39
The Object Literal Syntax 40
Objects from a Constructor 41
Object Constructor Catch 41
Custom Constructor Functions 42
Constructor’s Return Values 43
Patterns for Enforcing new 44
Naming Convention 45
Using that 45
Self-Invoking Constructor 46
Array Literal 46
Array Literal Syntax 47
Array Constructor Curiousness 47
Check for Array-ness 48
JSON 49
Working with JSON 49
Regular Expression Literal 50
Regular Expression Literal Syntax 51
Primitive Wrappers 52
Error Objects 53
Summary 54
4. Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Background 57
Disambiguation of Terminology 58
Declarations Versus Expressions: Names and Hoisting 59
Function’s name Property 60
viii | Table of Contents
Function Hoisting 61
Callback Pattern 62
A Callback Example 63
Callbacks and Scope 64
Asynchronous Event Listeners 66
Timeouts 66
Callbacks in Libraries 67
Returning Functions 67
Self-Defining Functions 68
Immediate Functions 69
Parameters of an Immediate Function 70
Returned Values from Immediate Functions 71
Benefits and Usage 72
Immediate Object Initialization 73
Init-Time Branching 74
Function Properties—A Memoization Pattern 76
Configuration Objects 77
Curry 79
Function Application 79
Partial Application 80
Currying 81
When to Use Currying 83
Summary 84
5. Object Creation Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Namespace Pattern 87
General Purpose Namespace Function 89
Declaring Dependencies 90
Private Properties and Methods 92
Private Members 92
Privileged Methods 93
Privacy Failures 93
Object Literals and Privacy 94
Prototypes and Privacy 95
Revealing Private Functions As Public Methods 96
Module Pattern 97
Revealing Module Pattern 99
Modules That Create Constructors 100
Importing Globals into a Module 101
Sandbox Pattern 101
A Global Constructor 101
Adding Modules 103
Implementing the Constructor 104
Table of Contents | ix
Static Members 105
Public Static Members 105
Private Static Members 107
Object Constants 109
Chaining Pattern 110
Pros and Cons of the Chaining Pattern 111
method() Method 112
Summary 113
6. Code Reuse Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Classical Versus Modern Inheritance Patterns 115
Expected Outcome When Using Classical Inheritance 116
Classical Pattern #1—The Default Pattern 117
Following the Prototype Chain 117
Drawbacks When Using Pattern #1 119
Classical Pattern #2—Rent-a-Constructor 120
The Prototype Chain 121
Multiple Inheritance by Borrowing Constructors 122
Pros and Cons of the Borrowing Constructor Pattern 123
Classical Pattern #3—Rent and Set Prototype 123
Classical Pattern #4—Share the Prototype 124
Classical Pattern #5—A Temporary Constructor 125
Storing the Superclass 126
Resetting the Constructor Pointer 127
Klass 128
Prototypal Inheritance 130
Discussion 132
Addition to ECMAScript 5 132
Inheritance by Copying Properties 133
Mix-ins 135
Borrowing Methods 136
Example: Borrow from Array 137
Borrow and Bind 137
Function.prototype.bind() 138
Summary 139
7. Design Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Singleton 141
Using new 142
Instance in a Static Property 143
Instance in a Closure 144
Factory 146
Built-in Object Factory 148
x | Table of Contents
Iterator 149
Decorator 151
Usage 151
Implementation 151
Implementation Using a List 154
Strategy 155
Data Validation Example 156
Façade 158
Proxy 159
An Example 160
Proxy As a Cache 167
Mediator 167
Mediator Example 168
Observer 171
Example #1: Magazine Subscriptions 171
Example #2: The Keypress Game 175
Summary 178
8. DOM and Browser Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Separation of Concerns 181
DOM Scripting 183
DOM Access 183
DOM Manipulation 184
Events 185
Event Handling 186
Event Delegation 188
Long-Running Scripts 189
setTimeout() 189
Web Workers 190
Remote Scripting 190
XMLHttpRequest 191
JSONP 192
Frames and Image Beacons 195
Deploying JavaScript 196
Combining Scripts 196
Minifying and Compressing 197
Expires Header 197
Using a CDN 197
Loading Strategies 198
The Place of the <script> Element 199
HTTP Chunking 200
Dynamic <script> Element for Nonblocking Downloads 201
Lazy-Loading 203
Table of Contents | xi
Loading on Demand 203
Preloading JavaScript 205
Summary 206
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209