閉包1

在一個函數裏面嵌套另外一個函數html

1    function func() {
2         var a=1, b=2;
3         function closure() {
4             return a + b;
5         }
6         return closure;
7     }
console.log(func());  返回那個函數
console.log(func()());  返回那個函數的執行結果
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>
相關文章
相關標籤/搜索