闭包1
在一个函数里面嵌套另一个函数
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 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>

浙公网安备 33010602011771号