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

js闭包

时间:2020-06-08 12:16:31      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:图片   调用   它的   私有变量   js闭包   doc   变量   案例   log   

闭包:

1、一个函数嵌套另一个函数

2、内层函数调用外层函数的变量

3、内层函数作为返回值返回给外层函数

闭包代码:

        function num(){
            let i = 0
            return function getNum(){ //内层函数作为返回值返回给外层函数
                return ++i //内层函数调用外层函数的变量
            }
        }
        let n = num()
        console.log(n())//1
        console.log(n())//2
        console.log(n())//3

优点:防止变量全局污染,调用数据更加方便

缺点:耗内存,因为每次使用闭包函数都会生成一个独立的,不被销毁的执行空间,存储它的私有变量

闭包案例:

点击每个li都会打印出它对应的下标

js代码:

    const list = document.querySelectorAll(‘ul li‘)
    for(let i = 0;i<list.length;i++){
        list[i].onclick = ((index)=>{
            return ()=>{
                console.log(index)
            }
        })(i)
    }

技术图片

js闭包

标签:图片   调用   它的   私有变量   js闭包   doc   变量   案例   log   

原文地址:https://www.cnblogs.com/zlf1914/p/13064638.html

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