Javascript的闭包,让人一看就头大
1 <html> 2 <head> 3 <title></title> 4 </head> 5 <body> 6 <script> 7 var statusObject = function(){ 8 var value = 0; 9 return { 10 increment : function(inc){ 11 value += typeof inc == ‘number‘ ? inc : 1; 12 }, 13 getValue : function(){ 14 return value; 15 } 16 } 17 }(); 18 19 // 这里最后一行存在一个括号,意思是把调用该函数后的返回结果,赋值给statusObject 20 // 闭包就是让外部可以访问到局部变量 21 22 statusObject.increment(8); 23 console.log(statusObject.getValue()); 24 </script> 25 </body> 26 </html>
匿名函数返回的是一个包含两个方法的对象,并且这些方法继续享有访问value的特权