在一個函數裏面嵌套另外一個函數html
1 function func() { 2 var a=1, b=2; 3 function closure() { 4 return a + b; 5 } 6 return closure; 7 }
1 1、在外面操做閉包內部的變量 2 2、能夠造成封閉空間,防止全局變量污染 3 三、能夠延長閉包內部變量的生命週期
1 <script type="text/html"> 2 function makeSub(x) { 3 return function (y) { 4 return x - y; 5 } 6 } 7 8 var sub3 = makeSub(3); 9 var sub7 = makeSub(7); 10 11 console.log(sub3(2)); // 1 12 console.log(sub7(2)); // 5 13 14 // 釋放對閉包的引用 15 sub3 = null; 16 sub7 = null; 17 </script>
對應第二條閉包
<script> var singleton = (function () { // 私有變量 var intro = "喜歡IT, 就來撩課!"; var work = function () { console.log('小撩!!!!!'); }; return { name: '小撩', getIntro: function () { return intro; }, getWork: function () { return work; } } })(); console.log(singleton.name); //能夠訪問到 console.log(singleton.getIntro());//訪問私有變量 singleton.getWork()();//訪問私有變量 </script>