本文實例總結了JS中閉包的經典用法。分享給大家供大家參考,具體如下:
閉包這個東西,網上有很多介紹資料。個人看了很多,還是一知半解。這里不做理論介紹,直接給出2個例子。
代碼1:記錄函數被調用的次數
function a(){ var i = 0; function b() { return ++i; } return b;}var c = a();c();//1c();//2
這種方式類似C語言中的private static變量,能夠保持局部變量的內存不釋放。
代碼2:正確給DOM注冊事件處理函數
<body> <input type="button" id="b1" value="1"> <input type="button" id="b2" value="2"> <input type="button" id="b3" value="3"> <input type="button" id="b4" value="4"> <script type="text/javascript"> var buttons = document.getElementsByTagName("input"); for (var i = 0; i < buttons.length; i++) { // 方式1:i的值一直是3 //buttons[i].onclick = function() { // console.log(i + " was clicked."); //} // 方式2:從0到3,是我們要的效果 (function(i){ buttons[i].onclick = function() { console.log(i + " was clicked."); } })(i); } </script></body>
更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript中json操作技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
新聞熱點
疑難解答