js 点击闭包_一个js/jquery点击事件与闭包的学习笔记

闭包在JavaScript的学习中一定会遇到,他是JavaScript一个非常有趣的属性,但是又非常容易出错,一不小心就弄错了。一次偶然的机会和公司2位前端开发人员一起讨论了jquery点击事件的闭包实现,在此扩充一下内容,记录下来,方便日后查阅。

最后一次更新是2017.01.15

为了方便后文描述,首先我们建立一个简单的HTML文件,内容只有8个a标签(如下),希望实现的功能是,点击任何a标签之后,提示当前a标签的所属下标,比如,当点击以下HTML中的”a标签0″时提示0;点击以下HTML中的”a标签3″时提示3。下面从原生JavaScript、jquery这2方面来简单谈谈。

a标签0

a标签1

a标签2

a标签3

a标签4

a标签5

a标签6

a标签7

原生JavaScript的实现

几乎所有的讨论闭包的JavaScript书籍都会给出以下的反面例子:

var a = document.getElementsByTagName('a');

for(var i= 0; i < 8; i++){

a[i].onclick = function(){

console.log(i);

}

}

以上代码的第3-5行建立了一个闭包,此段代码的最终运行结果是:当你点击任何a标签的时候,会打印出8.

为什么会全部输出8呢?对闭包有所了解的读者应该知道,上述代码实际上创建了8个闭包&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值