HLJ 发布于
2018-08-12 17:16:39

js 闭包

闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量,利用闭包可以突破作用链域,将函数内部的变量和方法传递到外部。

闭包特性:
(1)函数内再嵌套函数
(2)内部函数可以引用外层的参数和变量
(3)参数和变量不会被垃圾回收机制回收
li节点的onclick事件都能正确的弹出当前被点击的li索引
<ul>
	<li> index = 0 </li>
	<li> index = 1 </li>
	<li> index = 2 </li>
	<li> index = 3 </li>
</ul>
<script type="text/javascript">
	var nodes = document.getElementsByTagName('li');
	for(i = 0;i<nodes.length;i+=1) {
		nodes[i].onclick = function() {
			console.log(i+1); //不使用闭包的话,值每次都是4
		}(4);
	}
</script>

文章来源:网络
最后生成于 2023-06-18 18:29:32
此内容有帮助 ?
0