标签:type name rip htm elements doc class html char
1.闭包的概念:一个内部函数引用了外部函数的变量,外部函数形成了一个闭包。
function(){ var i=0 function(){ console.log(i) }
2.案例
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>闭包</title> </head> <body> <ul> <li>第1个li</li> <li>第2个li</li> <li>第3个li</li> <li>第4个li</li> <li>第5个li</li> <li>第6个li</li> </ul> <!-- <script> var lis=document.getElementsByTagName(‘li‘); for(var i=0;i<lis.length;i++){ lis[i].onclick=function(){ // onclick 绑定的函数, 传参数 关键字this 点击后直接获取本点击对象 console.log(this.innerText) } } </script> --> <!-- 错误的代码,lis[i]为undefined --> <!-- <script> var lis=document.getElementsByTagName(‘li‘); for(var i=0;i<lis.length;i++){ lis[i].onclick=function(){ console.log(lis[i].innerText) } } </script> --> <!-- 用自调用函数包裹,形成了一个闭包 --> <script> var lis = document.getElementsByTagName(‘li‘); for (var i = 0; i < lis.length; i++) { (function (i) { lis[i].onclick = function () { console.log(lis[i].innerText) } }(i)) } </script> </body> </html>
标签:type name rip htm elements doc class html char
原文地址:https://www.cnblogs.com/zhaodz/p/11586075.html