<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>JS闭包</title> <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ alert("JS闭包的作用开始了!!!"); var a = aa(); a(); addNum(); a(); addNum(); a(); }); function aa() { var n = 100; addNum = function() { n++; } function bb() { alert(n) } return bb; } function showNum() { var show = aa(); show(); } function noClosure() { alert("看下去就知道区别了!!!"); showNumber(); addNum(); showNumber(); } function showNumber() { var n = 999; addNum = function() { n++; alert(n) } alert(n); } </script> </head> <body> JS闭包(闭包就是能够读取其他函数内部变量的函数): <br /> <input type="button" value="点我" onclick="showNum();" /> <input type="button" value="无闭包" onclick="noClosure();" /> </body> </html>
用简单的代码教你理解JS闭包,js闭包简单说就是能够读取到函数内部变量值的函数,并且使这些变量始终保存在内存中
不要停留在羡慕别人代码的层次上,因为不试试,你怎么知道你也可以让别人羡慕的呢???