首页 > 代码库 > 初识js中的闭包
初识js中的闭包
原文链接:http://www.cnblogs.com/pssp/p/5189345.html
下面我来说一个闭包的使用场景吧。
没有使用闭包的版本
window.onload = function(){ var ul = document.getElementsByTagName("ul")[0]; var li = ul.getElementsByTagName("li"); for(var i=0;i<li.length;i++){ li[i].onclick = function(){ console.log(i); //不管我怎么点都是返回6 } } }
使用了闭包的版本
window.onload = function(){ var ul = document.getElementsByTagName("ul")[0]; var li = ul.getElementsByTagName("li"); for(var i=0;i<li.length;i++){ (function(i){ li[i].onclick = function(){ console.log(i); //点击第几个返回第几个 } })(i) } }
评论区:
for(var i=0;i<li.length;i++){
(function(i){
li[i].onclick = function(){
console.log(i); //点击第几个返回第几个
}
})(i)
}
是不是类似
for(var i=0;i<li.length;i++){
function aaa(i){
li[i].onclick = function(){
console.log(i); //点击第几个返回第几个
}
}
aaa(i);
}
让aaa(i)里的参数获取i值然后传进去
相关文章:关于在for循环中绑定事件打印变量i是最后一次。
初识js中的闭包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。