2 * Function expressions as variables
5 // Anonymous function expression without body
6 var foo = function(){};
7 var fooArg = function(a,b,c){};
9 // Named function expression without body
10 var bar = function bar(){};
11 var barArg = function barArg(a,b,c){};
13 // Anonymous function expression with body
14 var baz = function(){something();};
15 var bazArg = function(a,b,c){something();};
17 // Named function expression with body
18 var booz = function booz(a,b,c){something();};
19 var boozArg = function boozArg(){something();};
22 * Function expression as arguments
25 // Named function expression with body
26 call(function test(){something();});
27 call(x,function test(){x();});
28 call(function test(){x();},x);
30 // Named function expression with body and arguments
31 call(function testArg(a,b,c){something();});
32 call(x,function testArg(a,b,c){x();});
33 call(function testArg(a,b,c){x();},x)
35 // Named function expression without body and arguments
36 call(function test2(){});
37 call(x,function test2(){});
38 call(function test2(){},x);
40 // Named function expression without body and with arguments
41 call(function test2Arg(a,b,c){});
42 call(x,function test2Arg(a,b,c){});
43 call(function test2Arg(a,b,c){},x);
46 // Anonymous function expression with body
47 call(function(){something();});
48 call(x,function(){x();});
49 call(function(){x();},x);
51 // Anonymous function expression with body and arguments
52 call(function(a,b,c){something();});
53 call(x,function(a,b,c){x();});
54 call(function(a,b,c){x();},x);
56 // Anonymous function expression without body and arguments
61 // Anonymous function expression without body and with arguments
62 call(function(a,b,c){});
63 call(x,function(a,b,c){});
64 call(function(a,b,c){},x);
67 * Function expression as object methods
71 // Anonymous function expression without body
73 fooArg: function(a,b,c){},
75 // Named function expression without body
76 bar: function bar(){},
77 barArg: function barArg(a,b,c){},
79 // Anonymous function expression with body
80 baz: function(){something();},
81 bazArg: function(a,b,c){something();},
83 // Named function expression with body
84 booz: function booz(a,b,c){something();},
85 boozArg: function boozArg(){something();},
89 * Function expression immediate execution
92 // Anonymous function expression without body
94 (function(a,b,c){})();
96 // Named function expression without body
98 (function barArg(a,b,c){})();
100 // Anonymous function expression with body
101 (function(){something();})();
102 (function(a,b,c){something();})();
104 // Named function expression with body
105 (function booz(a,b,c){something();})();
106 (function boozArg(){something();})();
109 // Anonymous function expression without body
111 (function(a,b,c){}());
113 // Named function expression without body
114 (function bar(){}());
115 (function barArg(a,b,c){}());
117 // Anonymous function expression with body
118 (function(){something();}());
119 (function(a,b,c){something();}());
121 // Named function expression with body
122 (function booz(a,b,c){something();}());
123 (function boozArg(){something();}());