js闭包函数

JavaScript闭包函数

闭包函数的定义:因为每一个函数都有一个自己的局部作用域,外部是访问不到的,如果在一个内部函数里,对在外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure)。

举个简单的例子:

function fn() {
    var name = "小明";
	function fun() {
			return name
	}
	return fun()
	}
    var name = fn()
	console.log(name)

这里在函数 fn内部声明了一个变量 name ,外部是访问不到这个name,然后我们通过在函数内部又创建了一个函数把这个name值给返回出去,最后把这个函数作为返回值给返回出去,这样就形成了闭包。

案例

<ul id="nav">
	<li>鸡</li>
	<li>鸭</li>
	<li>鱼</li>
	<li>海鲜</li>
</ul>
// 案例点击li输出对应的索引值
var lis = document.querySelector('#nav').querySelectorAll('li')
for(var i=0;i<lis.length;i++) {
	(function(i) {
		lis[i].onclick = function() {
		console.log(i)
	}
	})(i)
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值