码迷,mamicode.com
首页 > Web开发 > 详细

初识js中的闭包

时间:2017-01-16 14:18:02      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:链接   分享   ima   htm   gif   for   com   pyc   .com   

原文链接: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中的闭包

标签:链接   分享   ima   htm   gif   for   com   pyc   .com   

原文地址:http://www.cnblogs.com/gavinyyb/p/6289263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!