Beware Anonymous Functions

jQuery

Beware Anonymous Functions

Anonymous functions bound everywhere are a pain. They're difficult to debug, maintain, test, or reuse. Instead, use an object literal to organize and name your handlers and callbacks.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
                          
// BAD
$( document ).ready(function() {
$("#magic").click(function( event ) {
$("#yayeffects").slideUp(function() {
// ...
});
});
$("#happiness").load( url + " #unicorns", function() {
// ...
});
});
// BETTER
var PI = {
onReady : function() {
$("#magic").click( PI.candyMtn );
$("#happiness").load( PI.url + " #unicorns", PI.unicornCb );
},
candyMtn : function( event ) {
$("#yayeffects").slideUp( PI.slideCb );
},
slideCb : function() { ... },
unicornCb : function() { ... }
};
$( document ).ready( PI.onReady );