标签:嵌套 cli alert 垃圾回收机制 i++ 机制 定义 tag body
1 <body> 2 <button>按钮1</button> 3 <button>按钮2</button> 4 <button>按钮3</button> 5 <script> 6 var btns = document.getElementsByTagName(‘button‘); 7 for (var i = 0; i < btns.length; i++) { 8 var btn = btns[i]; 9 (function (i) { 10 btn.onclick = function (ev) { 11 alert(‘点击了‘ + (i + 1) + ‘个‘); 12 } 13 })(i) 14 } 15 </script>
1 function fn1() { 2 var num = 10; 3 function fn2() { 4 console.log(num); 5 } 6 return fn2; 7 } 8 9 fn1(); 10 var f = fn1(); 11 f(); 12 内部函数获取外部函数的变量
闭包主要是为了解决局部变量无法长久的保存,而全局变量可能造成变量污染
垃圾回收机制
1 <script type="text/html"> 2 function fn1() { 3 var num = 10; 4 function fn2() { 5 num++; 6 console.log(num); 7 } 8 return fn2; 9 } 10 11 var f = fn1(); 12 f(); 13 f(); 14 15 f = null //指针指向 16 17 </script>
闭包的产生是在嵌套函数定义执行完时就产生了(不是在调用的时候)
闭包的死亡f=null
小闭包:
(function(){})()
标签:嵌套 cli alert 垃圾回收机制 i++ 机制 定义 tag body
原文地址:https://www.cnblogs.com/zhangzhengyang/p/11229066.html