for循环与闭包
来源:互联网 发布:如何想象高维空间 知乎 编辑:程序博客网 时间:2024/05/16 17:52
for循环和闭包
今天记录for循环和闭包的使用: for(var i = 0 ; i < lis.length ; i++) { lis[i].onclick=function(i){ return function(){ console.log(i) } }(i);}在for循环里面执行闭包的时候,将循环体的代码储存在一个内存中,对应的i值也储存在了内存中(闭包不销毁变量)。事件点击的时候是执行return之后的函数,在执行的时候,因为作用域的原因,使用的是事件之后的函数中的i值,这个i值在循环的时候已经储存为了对应的值,因此一次事件执行取到的i值都不一样。
作用域的问题:
var i = 5;function fn(){ var i = 2; return function(){ console.log(i) i++ }}var f = fn();f(); >>>2f(); >>>3fn()(); >>>2先找局部作用域中的,局部没有找上级,上级还没有,就一直往上级找,直到window(全局作用域)。闭包的扩展:jQueryjquery本身就是一个大的闭包。1.$('div') 获取的是一个集合,但是这个集合中的每一项都可以执行对应的事件,并且有自己的索引值。理解:当这个集合执行点击事件的时候形成了一个闭包,这个闭包里面有一个变量对应着div的下标,这个变量就是for循环时候对应的i值。
阅读全文
0 0
- 闭包与for循环
- for循环与闭包
- for循环绑定事件与闭包
- for 循环 addEventListener 与闭包实现
- js闭包与for循环
- 阿里笔试题目,闭包与for循环
- 关于for循环与闭包的一点点点笔记
- JavaScript 闭包 for循环
- for循环 i 闭包
- for循环的闭包
- for循环的闭包
- for循环时jquery闭包问题
- for循环时jquery闭包问题
- JavaScript闭包 取for循环i
- js for循环中的闭包
- JavaScript--------闭包 取for循环i
- js for循环中的闭包
- js延迟打印for循环-闭包
- 数据绑定
- [NOIP2017模拟]建设图
- IS-IS的报文——LSP
- FormData的使用
- for循环保存i值的方法
- for循环与闭包
- 接上文,关于存储问题
- for循环与自执行函数
- 关于对象
- Ajax 和 JSONP
- 关于JavaScript中的同步(SYNC)和异步(ASYNC)
- this和new
- Android Espresso测试
- 检测数据类型的方式