标签: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