Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 5cb3ee2

Browse files
committed
added changes to the collection
1 parent 40e55db commit 5cb3ee2

File tree

2 files changed

+90
-72
lines changed

2 files changed

+90
-72
lines changed

css/style.css

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -232,8 +232,9 @@ header img {padding-top:5px; border-top:1px solid #ccc; display:block;}
232232

233233
h1, h2, h3 {font-family: 'Tinos', serif; padding:0; margin:0;}
234234
h1 {
235-
font-size:16px;
235+
font-size:16px; float:left;
236236
}
237+
#btns {float:right; margin-bottom:10px;}
237238
h2 {
238239
font-size:18px;
239240
display:block;
@@ -262,7 +263,11 @@ li {
262263
margin-bottom:0.5em;
263264
}
264265

265-
266+
footer {
267+
text-align:center;
268+
margin-top:2em;
269+
margin-bottom:1em;
270+
}
266271

267272

268273

index.html

Lines changed: 83 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
More info: h5bp.com/b/378 -->
1313
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
1414

15-
<title></title>
15+
<title>JavaScript pattern and antipattern collection</title>
1616
<meta name="description" content="">
1717
<meta name="author" content="">
1818

@@ -36,83 +36,95 @@
3636
<img src="http://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png" alt="Fork me on GitHub">
3737
</a>
3838
<header>
39-
<h1>JavaScript Pattern Collection</h1>
39+
<h1>JavaScript Pattern Collection</h1>
40+
<div id="btns">
41+
<span class='st_twitter_hcount' displayText='Tweet'></span><span class='st_google_hcount' displayText='Google'></span><span class='st_facebook_hcount' displayText='Facebook'></span>
42+
</div>
4043
<img src="img/js-patterns.png" alt="JS Patterns" title="JS Patterns" />
4144
</header>
4245
<div role="main">
43-
<h2>Function Patterns</h2>
44-
<h3>API Patterns</h3>
45-
<ul>
46-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/callback.html" target="_blank">Callback patterns</a> - when you pass function A to function B as a parameter, function A is a callback function</li>
47-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/configuration-objects.html" target="_blank">Configuration objects </a>- keep control of function arguments and makes it easily configurable</li>
48-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/returning-functions.html" target="_blank">Returning functions </a>- one function returns another function or create another function on-demand</li>
49-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/currying.html" target="_blank">Currying</a> - used to create new functions dynamically by partially applying a set of arguments</li>
50-
</ul>
46+
<section>
47+
<h2>Function Patterns</h2>
48+
<h3>API Patterns</h3>
49+
<ul>
50+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/callback.html" target="_blank">Callback patterns</a> - when you pass function A to function B as a parameter, function A is a callback function</li>
51+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/configuration-objects.html" target="_blank">Configuration objects </a>- keep control of function arguments and makes it easily configurable</li>
52+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/returning-functions.html" target="_blank">Returning functions </a>- one function returns another function or create another function on-demand</li>
53+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/currying.html" target="_blank">Currying</a> - used to create new functions dynamically by partially applying a set of arguments</li>
54+
</ul>
55+
56+
<h3>Initialization patterns</h3>
57+
<ul>
58+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/immediate-functions.html" target="_blank">Immediate functions</a> - syntax that enables function execution as soon as it is defined</li>
59+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/immediate-object-initialization.html" target="_blank">Immediate object initialization</a> - this pattern is mainly suitable for one-off tasks</li>
60+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/init-time-branching.html" target="_blank">Init-time branching</a> - branch code once during initlization initialization</li>
61+
</ul>
62+
63+
<h3>Performance patterns</h3>
64+
<ul>
65+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/memoization.html">Memoization</a> - use function properties to avoid repeated computation</li>
66+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/self-defining-functions.html">Self-defining functions</a> - self-overwrite with new bodies to do less work from the second invocation and after</li>
67+
</ul>
68+
</section>
5169

52-
<h3>Initialization patterns</h3>
53-
<ul>
54-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/immediate-functions.html" target="_blank">Immediate functions</a> - syntax that enables function execution as soon as it is defined</li>
55-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/immediate-object-initialization.html" target="_blank">Immediate object initialization</a> - this pattern is mainly suitable for one-off tasks</li>
56-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/function-patterns/init-time-branching.html" target="_blank">Init-time branching</a> - branch code once during initlization initialization</li>
57-
</ul>
70+
<section>
71+
<h2>jQuery Patterns</h2>
72+
<ul>
73+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/requery.html" target="_blank">requery</a> - avoid requery by using jQuery chaining</li>
74+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/append.html" target="_blank">append</a> - use string concatenate and set innerHTML</li>
75+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/data.html" target="_blank">data</a> - pattern and antipattern of using data</li>
76+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/context-and-find.html" target="_blank">context and find</a> - use find over context</li>
77+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/detach.html" target="_blank">detach</a> - take element off the DOM while manipulating them</li>
78+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/event-delegation.html" target="_blank">event delegation</a> - event delegation pattern and antipattern</li>
79+
</ul>
80+
<h3>Selector</h3>
81+
<ul>
82+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/left-and-right.html" target="_blank">left and right</a> - specific on the right, light on the left</li>
83+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/decending-from-id.html" target="_blank">decending from id</a> - be more specific</li>
84+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/universal-selector.html" target="_blank">universal selector</a> - use of universal selector</li>
85+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/specific-when-needed.html" target="_blank">be specific when needed</a> - be specific only when needed</li>
86+
</ul>
87+
</section>
5888

59-
<h3>Performance patterns</h3>
60-
<ul>
61-
<li><a href="#">Memoization</a> - use function properties to avoid repeated computation</li>
62-
<li><a href="#">Self-defining functions</a> - self-overwrite with new bodies to do less work from the second invocation and after</li>
63-
</ul>
89+
<section>
90+
<h2>Design Patterns</h2>
91+
<h3>Creational</h3>
92+
<ul>
93+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/builder.html" target="_blank">Builder</a> - constructs complex objects by separating construction and representation</li>
94+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/factory.html" target="_blank">Factory method</a> - creates objects without specifying the exact class to create</li>
95+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/singleton.html" target="_blank">Singleton</a> - restricts object creation for a class to only one instance</li>
96+
</ul>
97+
<h3>Structural</h3>
98+
<ul>
99+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/decorator.html" target="_blank">Decorator</a> - dynamically adds/overrides behaviour in an existing method of an object</li>
100+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/facade.html" target="_blank">Facade</a> - provides a simplified interface to a large body of code</li>
101+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/proxy.html" target="_blank">Proxy</a> - provides a placeholder for another object to control access, reduce cost, and reduce complexity</li>
102+
</ul>
103+
<h3>Behavioral</h3>
104+
<ul>
105+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/chain-of-responsibility.html" target="_blank">Chain of responsibility</a> - delegates commands to a chain of processing objects</li>
106+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/command.html" target="_blank">Command</a> - creates objects which encapsulate actions and parameters</li>
107+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/iterator.html" target="_blank">Iterator</a> - implements a specialized language</li>
108+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/mediator.html" target="_blank">Mediator</a> - allows loose coupling between classes by being the only class that has detailed knowledge of their methods</li>
109+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/observer.html" target="_blank">Observer</a> - is a publish/subscribe pattern which allows a number of observer objects to see an event</li>
110+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/strategy.html" target="_blank">Strategy</a> - allows one of a family of algorithms to be selected on-the-fly at runtime</li>
111+
</ul>
112+
</section>
64113

65-
<h2>jQuery Patterns</h2>
66-
<ul>
67-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/requery.html" target="_blank">requery</a> - avoid requery by using jQuery chaining</li>
68-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/append.html" target="_blank">append</a> - use string concatenate and set innerHTML</li>
69-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/data.html" target="_blank">data</a> - pattern and antipattern of using data</li>
70-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/context-and-find.html" target="_blank">context and find</a> - use find over context</li>
71-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/detach.html" target="_blank">detach</a> - take element off the DOM while manipulating them</li>
72-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/event-delegation.html" target="_blank">event delegation</a> - event delegation pattern and antipattern</li>
73-
</ul>
74-
<h3>Selector</h3>
75-
<ul>
76-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/left-and-right.html" target="_blank">left and right</a> - specific on the right, light on the left</li>
77-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/decending-from-id.html" target="_blank">decending from id</a> - be more specific</li>
78-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/universal-selector.html" target="_blank">universal selector</a> - use of universal selector</li>
79-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/jquery-patterns/specific-when-needed.html" target="_blank">be specific when needed</a> - be specific only when needed</li>
80-
</ul>
81-
<h2>Design Patterns</h2>
82-
<h3>Creational</h3>
83-
<ul>
84-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/builder.html" target="_blank">Builder</a> - constructs complex objects by separating construction and representation</li>
85-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/factory.html" target="_blank">Factory method</a> - creates objects without specifying the exact class to create</li>
86-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/singleton.html" target="_blank">Singleton</a> - restricts object creation for a class to only one instance</li>
87-
</ul>
88-
<h3>Structural</h3>
89-
<ul>
90-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/decorator.html" target="_blank">Decorator</a> - dynamically adds/overrides behaviour in an existing method of an object</li>
91-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/facade.html" target="_blank">Facade</a> - provides a simplified interface to a large body of code</li>
92-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/proxy.html" target="_blank">Proxy</a> - provides a placeholder for another object to control access, reduce cost, and reduce complexity</li>
93-
</ul>
94-
<h3>Behavioral</h3>
95-
<ul>
96-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/chain-of-responsibility.html" target="_blank">Chain of responsibility</a> - delegates commands to a chain of processing objects</li>
97-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/command.html" target="_blank">Command</a> - creates objects which encapsulate actions and parameters</li>
98-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/iterator.html" target="_blank">Iterator</a> - implements a specialized language</li>
99-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/mediator.html" target="_blank">Mediator</a> - allows loose coupling between classes by being the only class that has detailed knowledge of their methods</li>
100-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/observer.html" target="_blank">Observer</a> - is a publish/subscribe pattern which allows a number of observer objects to see an event</li>
101-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/design-patterns/strategy.html" target="_blank">Strategy</a> - allows one of a family of algorithms to be selected on-the-fly at runtime</li>
102-
</ul>
103-
104-
<h2>General Patterns</h2>
105-
<ul>
106-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/single-var-pattern.html" target="_blank">single var pattern</a> - use one var statement and declare multiple variables</li>
107-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/globals.html" target="_blank">globals</a> - problem with globals</li>
108-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/conditionals.html" target="_blank">conditionals</a> - pattern and antipattern of using if else</li>
109-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/hoisting.html" target="_blank">hoisting</a> - var statements anywhere in a function act as if the variables were declared at the top of the function</li>
110-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/for-loops.html" target="_blank">for loops</a> - optimized for loops</li>
111-
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/for-in-loops.html" target="_blank">for-in loops</a> - optimized for-in loops</li>
112-
</ul>
114+
<section>
115+
<h2>General Patterns</h2>
116+
<ul>
117+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/single-var-pattern.html" target="_blank">single var pattern</a> - use one var statement and declare multiple variables</li>
118+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/globals.html" target="_blank">globals</a> - problem with globals</li>
119+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/conditionals.html" target="_blank">conditionals</a> - pattern and antipattern of using if else</li>
120+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/hoisting.html" target="_blank">hoisting</a> - var statements anywhere in a function act as if the variables were declared at the top of the function</li>
121+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/for-loops.html" target="_blank">for loops</a> - optimized for loops</li>
122+
<li><a href="https://github.com/shichuan/javascript-patterns/blob/master/general-patterns/for-in-loops.html" target="_blank">for-in loops</a> - optimized for-in loops</li>
123+
</ul>
124+
</section>
113125
</div>
114126
<footer>
115-
references: http://paulirish.com/2009/perf/
127+
by <a href="http://twitter.com/#!/shichuan">@shichuan</a>
116128
</footer>
117129

118130

@@ -126,6 +138,7 @@ <h2>General Patterns</h2>
126138
<!-- scripts concatenated and minified via build script -->
127139
<script defer src="js/plugins.js"></script>
128140
<script defer src="js/script.js"></script>
141+
<script type="text/javascript">var switchTo5x=true;</script><script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script><script type="text/javascript">stLight.options({publisher:'44fc3536-fd12-4c07-970d-6654da9a2d6c'});</script>
129142
<!-- end scripts -->
130143

131144

0 commit comments

Comments
 (0)