3-1闭包

2019-03-10  本文已影响0人  大庆无疆

闭包:在一个作用域中可以访问另一个作用域的变量
闭包特点:延展了函数的作用域范围

定义:闭包 当一个函数的返回值是另外一个函数,而返回的那个函数如果调用了其父函数内部的变量,且返回的这个函数在外部被执行



//练习
// 点击相应的li,输出对应的索引,第一个输出0,第二个输出1,...
var heroes = document.getElementById('heroes');
var lists = heroes.children;
/*
for (var i = 0; i < lists.length; i++) {
    var li = lists[i];
    li.index = i;   // 给li增加index属性,记录索引
    //  注册事件监听
    li.onclick = function () {
        console.log(this.index);
    }
}
*/
// 这是我们之前的做法,如果用闭包的做法怎么做呢?(面试常考题)
for (var i = 0; i < lists.length; i++) {
    var li = lists[i];
    (function (i) {
        li.onclick = function () {
            console.log(i);
        }
    })(i);
}
上一篇 下一篇

猜你喜欢

热点阅读