js闭包

Posted zlf1914

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js闭包相关的知识,希望对你有一定的参考价值。

闭包:

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闭包的概念

(原创)JS闭包看代码理解

关于JS闭包

js闭包的作用

js闭包

js的闭包